Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Obtener Maximo dias del mes en curso (https://www.clubdelphi.com/foros/showthread.php?t=26519)

zugazua2001 25-10-2005 20:01:39

Obtener Maximo dias del mes en curso
 
Hola a todos, yo tengo que facturar desde la fecha actual hasta el final del mes en curso. La fecha actual la obtengo con el "Date", pero como hago para saber la cantidad de dias que tiene el mes en curso.¿?
Gracias por todo. Mi version de delphi es la 5.

vtdeleon 25-10-2005 20:12:04

Saludos

Por la cantidad de mensajes que llevas y fecha de suscripcion se puede decir que no eres nuevo en el foro. ¿Por qué no realizas una búsqueda?* ;). Casualmente ayer o antes se produjo la misma duda en este mismo apartado del foro.

**Espero que no lo tomes a mal :rolleyes:

Torreblanca 25-10-2005 20:12:39

prueba con la fución DaysInaMoth(año,mes);
año y mes son variables que le debes pasar a la funcion ya sea desde un combo o un edit

vtdeleon 25-10-2005 20:14:58

Wow

3 post en el mismo minuto(Record):P:P:P

dec 25-10-2005 20:19:26

Hola,


Cita:

Empezado por Troy
3 post en el mismo minuto(Record):P:P:P

No puedo dejarte mal. No me había fijado en que habíamos publicado los tres mensajes en el mismo minuto. He borrado el que yo publiqué primero porque he visto que la respuesta que refieres tú es justo la misma que la que he dado por mi parte. No es la primera vez que borro un mensaje mío por este motivo. Pero esta vez tuve que escribir este para aclarar el tuyo. ;)

zugazua2001 25-10-2005 21:42:04

No tengo la unidad DateUtils
 
Gracias a ambos, mi problema es que no tengo esa unidad.
De donde la puedo bajar¿?
Saludos a ambos...

vtdeleon 26-10-2005 01:04:15

Saludos
Cita:

Empezado por zugazua2001
mi problema es que no tengo esa unidad.

Oops.
Cita:

Empezado por zugazua2001
De donde la puedo bajar¿?

Ni la menor idea pero puede hacer esto: Feo, pero es lo que se me ocurre ahora
Código Delphi [-]
var
  fecha,tfecha:TDate;
  dia,mes,ano:word;
begin
  fecha:=now;//Aquí asignas la fecha del mes
  DecodeDate(fecha,ano,mes,dia);
  inc(mes);
  tfecha:=EncodeDate(ano,mes,dia);
  showmessage(copy(DateToStr(tfecha+2-fecha),1,2));
Si alguien puede mejorarlo, agradecido estaré

Héctor Randolph 26-10-2005 02:41:22

Es extraño que no tengas la unidad DateUtils :confused: , busca en la ruta
{Delphi5 Dir}\Source\Rtl\Common por algún lado debería estar.

Si no la encuentras aquí transcribo la función DaysInAMonth para que la implementes.

Código Delphi [-]

{ The MonthDays array can be used to quickly find the number of
  days in a month:  MonthDays[IsLeapYear(Y), M]      }

const
  MonthDays: array [Boolean] of TDayTable =
    ((31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
     (31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31));

function DaysInAMonth(const AYear, AMonth: Word): Word;
begin
  Result := MonthDays[(AMonth = 2) and IsLeapYear(AYear), AMonth];
end;

function IsLeapYear(Year: Word): Boolean;
begin
  Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;

Un saludo.

Julià T. 26-10-2005 03:19:54

hola vtdeleon:
el codigo que nos has expuesto, no funcionaria para los meses de diciembre, ni para los dias en que el mes siguiente tuviera menos dias el día en que estamos (por ejemplo 31 de octubre)
haciendo la pequeña corrección queda más o menos así
Código Delphi [-]
var
  fecha,tfecha:TDate;
  dia,mes,ano:word;
begin
  fecha:=now;//Aquí asignas la fecha del mes
  DecodeDate(fecha,ano,mes,dia);
  fecha:=fecha-dia+1;//todos los meses tien día 1
  inc(mes);
  if mes >12 then 
  begin
    mes:=1;
    inc(ano);
  end;
  tfecha:=EncodeDate(ano,mes,1);  //para obtener el dia 1 del mes siguiente
  showmessage(copy(DateToStr(tfecha+2-fecha),1,2));
end;

vtdeleon 26-10-2005 03:33:42

Saludos
Cita:

Empezado por HECTOR RANDOLPH
Es extraño que no tengas la unidad DateUtils :confused:

Creo que esta unidad está a partir de la versión 7, si no me equivoco :rolleyes:
Cita:

Empezado por Julia
el codigo que nos has expuesto, no funcionaria para los meses de diciembre, ni para los dias en que el mes siguiente tuviera menos dias el día en que estamos (por ejemplo 31 de octubre)

Necesitaba un poquito de ayuda :rolleyes: , lo hice sin pensar :p

vtdeleon 26-10-2005 03:42:19

Saludos
Cita:

Empezado por Julià T.
no funcionaria para los meses de diciembre

Muy cierto, no existe mes 13 :rolleyes:
Cita:

Empezado por Julià T.
..ni para los dias en que el mes siguiente tuviera menos dias el día en que estamos (por ejemplo 31 de octubre)

Oops :p

xavinet 26-10-2005 17:51:22

www.koders.com
 
Hola!!

En www.koders.com, busca DaysInMonth para delphi y si miras el .pas de las JEDI: JclDateTime.pas, puedes bajarte toda la unit o si prefieres te copias la función o funciones necesarias en tu unit.

Hasta pronto gente! ;)


La franja horaria es GMT +2. Ahora son las 14:40:27.

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