Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2007
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 294
Poder: 19
GustavoCruz Va por buen camino
Question en contrar el ultimo dia del mes

hola a todos, en estos momentos estoy desarrollando una aplicación y tengo un pequeño problema con los componentes Tdatetimepicker, tengo una función que me busca el último dias del mes, esta es llamada desde en el evento onChange del componente tdatetimepicker, el codigo es el siguiente:

Código Delphi [-]
function TfPrincipal.DiasMes(fecha: TdateTime): integer;
 var
    ano, mes, dia: Word;
 begin
    DecodeDate( fecha, ano, mes, dia );
      Result:=0;
      case mes of
      2:  if IsLeapYear(ano) then Result:=29 else Result:=28;
      1,3,5,7,8,10,12: Result:=31;
      4,6,9,11:        Result:=30;
   end;
 end;

el problema radica cuando cambio el mes a uno que tiene menos días que el anterior, es decir, de agosto a septiembre.

espero haberme hecho explicar y de antemano gracias por todos los aportes que me puedan dar. Estaré atento a ellos...
Responder Con Cita
  #2  
Antiguo 21-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 26
eduarcol Va por buen camino
Busca la funcion DaysinMonth de la unidad dateutils
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 12-03-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 22
AzidRain Va camino a la fama
Que crees eduarcol....yo andaba buscando la misma cosa y resulta que DaysInMonth(2) devuelve 31!!!!!!!!!!!!!!! ora si que...bueno...lo correcto es usar DaysinAMonth pasándole el año para que nos calcule los dias de febrero correctamente.
__________________
AKA "El animalito" ||Cordobés a mucha honra||

Última edición por AzidRain fecha: 12-03-2008 a las 01:07:02.
Responder Con Cita
  #4  
Antiguo 12-03-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No tengo un delphi aquí, pero seguramente 2 es marzo, 1 es febrero, 0 es enero... digo yo, no puedo probarlo ahora.
Responder Con Cita
  #5  
Antiguo 12-03-2008
jandok238 jandok238 is offline
No confirmado
 
Registrado: ago 2007
Ubicación: ¿ǝɯ dlǝɥ noʎ uɐɔ 'ʍouʞ ʇ,uop ı
Posts: 415
Poder: 0
jandok238 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No tengo un delphi aquí, pero seguramente 2 es marzo, 1 es febrero, 0 es enero... digo yo, no puedo probarlo ahora.

Don't worry... yo si tengo delphi a la mano... yo hago al prueba....

......... 5 min despues.......

Pues ya probe....
y con la funcion DaysInMonth(); y en todos los meses me dio como resultado 31

en cambio con la funcion DaysInAMonth(); si me dio bien la cantidad de dias de cada mes... (incluido 29 en los años bisiestos).


EDITO :

La funcion DaysInMonth(); recibe como parametro TDateTime y no un entero ....

Cita:
Empezado por AzidRain
Que crees eduarcol....yo andaba buscando la misma cosa y resulta que DaysInMonth(2) devuelve 31!!!!!!!!!!!!!!! ora si que...bueno...lo correcto es usar DaysinAMonth pasándole el año para que nos calcule los dias de febrero correctamente.
asi que poniendo

Código Delphi [-]
  Edit1.Text := IntToStr(DaysInMonth(StrTodate('10/04/2008')));

pues si devuelve los dias correctos....

y de la otra funcion... pues no hay problema... DaysInAMonth() aqui van dos parametros... (año,mes)

Última edición por jandok238 fecha: 12-03-2008 a las 02:43:14. Razón: por que YA lei jejeje
Responder Con Cita
  #6  
Antiguo 12-03-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 22
AzidRain Va camino a la fama
Tienes razón no me había dado cuenta...pero al fin de cuentas resolvimos nuestro problema
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #7  
Antiguo 14-03-2008
a_f_g a_f_g is offline
No confirmado
 
Registrado: feb 2008
Ubicación: Paraguay
Posts: 14
Poder: 0
a_f_g Va por buen camino
Saludos

Esta funcion devuelve el ultimo dia del mes EndOfTheMonth();
Responder Con Cita
  #8  
Antiguo 14-03-2008
Yun-i Yun-i is offline
Miembro
 
Registrado: ene 2008
Posts: 125
Poder: 17
Yun-i Va por buen camino
colo debes tener en dateutils para ocupar las funciones mencionadas (DecodeDate,DaysInMonth)
yo hice uno con ayuda de los forista algo asi:

Código Delphi [-]
 
var FechaHasta : TDateTime;
     Dia, Mes, Ano: Word;
 
 
DecodeDate(datatimepicker.Date, Ano, Mes, Dia);
FechaHasta:=ReCodeDate(datatimepicker.Date,Ano, Mes, DaysInMonth(datatimepicker.Date)); // último día del mes con su respectivo añejo jijiji

si lo que quieres es el puro dia del mes ps es algo como

DaysInMonth(datatimepicker.Date));

ami me funciona ala perfeccion espero te sirvaa
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber ultimo dia del mes morfeo21 Varios 2 21-01-2005 20:06:18
Obtener el último trozo de una ip DarkByte Varios 7 30-07-2004 17:08:02
Ultimo registro ander Firebird e Interbase 3 18-03-2004 15:52:02
Ir al último registro de una tabla fortran Tablas planas 6 05-09-2003 17:36:02
Last no me lleva al ultimo marcelofabiani Firebird e Interbase 4 18-07-2003 21:10:02


La franja horaria es GMT +2. Ahora son las 01:33:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi