Programación General > C++ Builder

 Manejo De Fechas

(1/2) > >>

Devilcpc:
Buenas

Se me ha presentado un pequeño problemita, resulta q estoy haciendo un programa tipo una agenda entre los cuales se guardan las fechas de cumpleaños de mis amigos en una base de datos, en la pantalla principal el programa debe decir si es el cumpleaños de alguien hoy (eso es facil y lo pude hacer), pero la parte q no me sale es calcular cual seria el proximo cumpleaños

la base de datos cuenta con 3 campos separados:
Dia de nacimiento (NacDia), Mes de nacimiento (NacMes), Año de nacimineto (NacAño);

la fecha actual la tomo con una struct tm, por lo q obtengo por separado el DiaActual, MesActual y AñoActual

se me complica el tema alrealizar las operaciones matematicas para calcular el prox cumpleaños, ya q por ejemplo de diciembre a enero hay 1 solo mes de diferencia pero matematicamente hay 11 (12-1 = 11)  :lightsabre:

si a alguien se le ocurre como hacer q me lo diga, gracias

Saludos  :hola:

Devilcpc:
esta si se q esta dificil, pero algun genio tiene q haber por aca....

Joss:
Tengo, Mesactual y por otro lado, mesnac.
Para ver la diferencia en meses, yo haria:

int difer ;

difer=mesNac - Mesactual ;
if ( difer<0 )
  difer = difer + 12 ;

Ejemplos:

MesActual = 11 (Noviembre)
Mes NAc= 12 (Diciembre)
difer = 1 mes.

MesActual = 11 (Noviembre)
Mes NAc= 2 (Febrero)
difer = 2 - 11 = -9 +12 = 3 meses.

Ojo con el dia del mes, cuando Mesactual y MesNac coincidan.

De nada.

Devilcpc:
gracias por la ayuda, ahora pruebo y te digo... :hola:

carquemo:
Hola
No se si te funciono lo de antes, pero aqui te explico una que funciona seguro
se trata de organizar la fecha de manera diferente a la que estamos acostumbrados, al menos los de dia/mes/año, el truco esta en organizarla, al reves, año/mes/dia, EN UN SOLO NUMERO, me explico:
 el ejemplo que tu dices de diciembre y enero, si estamos a noviembre de 2004,
los cumpleaños a partir de enero seran ya del 2005, es decir el 04 de enero de 2005 pasaria a ser 20050104, mientras que el de diciembre, como es este año, será (por ejemplo el 25 de diciembre de 2004) 20041225, como puedes ver 20041205 es menor que 20050104, y por eso será el proximo, ¿que como pasas la fecha de "separada" a "junta al reves", asi:

     fecha=año*10000 + mes * 100 + dia
cada vez que se produce un cumpleaños, has de

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa