Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Fin de Mes

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Fin de Mes Responder citando

No se si se haga de una manera mas facil pero lo logre, no podia hallar el numero de dias que tiene un mes (por favor no me digan que es una bobada por que lo pense mucho), aqui esta la funcion o su idea

int DaysOfMonth(TDate Date1)
{
Word Year,Month,Day;
DecodeDate(Date1,Year,Month,Day);
if(Month==12)
{
Month = 1;
Year++;
}
else
{
Month++;
}
TDate Date2 = StrToDate("1/"+IntToStr(Month)+"/"+IntToStr(Year))
DecodeDate(Date1,Year,Month,Day);
TDate Date3 = StrToDate("1/"+IntToStr(Month)+"/"+IntToStr(Year))
DecodeDate(Date2-Date3,Year,Month,Day);
return Day+1;
}

espero que les sirva alguna vez....

Atte
Trigger
Barranquilla-Colombia
hagings_trigger@hotmail.com

Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

Hola

Aplicando tu filosofia yo lo dejo asin:

code:
int __fastcall TForm1::DaysOfMonth(TDate Date1)
{
Word Year,Month,Day;
TDate Date2;

DecodeDate(Date1,Year,Month,Day);
Date2 = StrToDate("1/"+IntToStr(Month+1)+"/"+IntToStr(Year));
Date2 -= 1;
DecodeDate(Date2,Year,Month,Day);

return Day;
}


Salu2
KAYETANO

Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

o si me aprietas

code:
int DaysOfMonth(TDate Date1)
{
Word Year,Month,Day;

DecodeDate(Date1,Year,Month,Day);
DecodeDate((StrToDate("1/"+IntToStr(Month+1)+"/"+IntToStr(Year)) - 1),Year,Month,Day);

return Day;
}


Salu2
KAYETANO

Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

Pero si miras cayetano....
uando el mes es 12 y listo ...
asi es que paga este foro compartiendo

PD mira porfa mi pregunta del OBDC con el installshield que todavia tengo problemas

Atte
Trigger
Barranquilla-Colombia
haings_trigger@hotmail.com

Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

Hola, creo que esto resuelve el problema de diciembre

code:
--------------------------------------------------------------------------------

int DaysOfMonth(TDate Date1){Word Year,Month,Day;DecodeDate(Date1,Year,Month,Day);DecodeDate((StrToDate("1/"+IntToStr((Month != 12)?Month+1:1)+"/"+IntToStr(Year+(Month != 12)?0:1)) - 1),Year,Month,Day);return Day;}

--------------------------------------------------------------------------------

No lo he probado pero debería funcionar ¿no?

Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

Por cierto, KAYETANO, ¿qué debo hacer para que el código no se "descomponga"? No me gusta nada cómo ha quedado mi anterior mensaje, no resulta nada claro y la gente pasará de leerlo, lógicamente.
Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

código:
--------------------------------------------------------------------------------

int DaysOfMonth(TDate Date1)
{
Word Year,Month,Day;
DecodeDate(Date1,Year,Month,Day);
DecodeDate((StrToDate("1/"+IntToStr((Month != 12)?Month+1:1)+"/"+IntToStr(Year+(Month != 12)?0:1)) - 1),Year,Month,Day);
return Day;
}

--------------------------------------------------------------------------------

(espero que algo mejor que antes)

Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

Hola

code:
int DaysOfMonth(TDate Date1)
{
Word Year,Month,Day;
DecodeDate(Date1,Year,Month,Day);
Month = (Month % 12) + 1;
DecodeDate((StrToDate("1/"+IntToStr(Month)+"/"+IntToStr(Year + (int)(Month/12))) - 1),Year,Month,Day);
return Day;
}

Salu2
KAYETANO

Volver arriba
Mensaje    Asunto: Fin de Mes Responder citando

Por variar un poco Wink

int DiasMes( int mes, int anyo )
{
    return mes!=2 ? (0x15AA &(1<<mes)?31:30) : IsLeapYear(anyo) ? 29:28;
}


Por cierto en C++Builder 6 han añadido estas dos funciones:

DaysInAMonth y DaysInMonth

y unas cuantas mas, están en "DateUtils.hpp"

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.