Programación General > C++ Builder
Manejo De Fechas
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
[#] Página Siguiente
Ir a la versión completa