Calcule el número total de días desde la fecha de nacimiento hasta la fecha de cálculo usando c
#include
int GetDaysOfYear(int nYear)
{
si ((nAño%4 == 0 & & nAño% 100 != 0) || nAño%400 == 0)
{
Devuelve 366;
}
else
Devuelve 365;
}
int GetDaysOfMonth(int nMonth,int nYear )
{
cambiar(nMes)
{
caso 4:
caso 6:
caso 8 :
caso 11:
devolver 30;
caso 2:
if( GetDaysOfYear(nYear) == 365) p>
devuelve 28;
más
devuelve 29;
descanso;
predeterminado:
Retorno 31;
}
}
fecha de clase
{
público:
void Set(int n1=1900, int n2=1, int n3=1);
int operador -(fecha constante &v1);
int m_ nAño;
int m_nMes;
int m_nDía;
};
int fecha::operador -(fecha constante &v1)
{
int nCounter = 0;
int nAño = m_nAño - v1.m_nAño;
if(nAño == 0)
{
int nMes = m_nMes - v1.m_nMes;
if(nMes == 0)
return m_ nDía - v1 .m_nDay;
else if(m_nMonth >0)
{
for(int i=v1.m_nMonth+1; i nCounter += GetDaysOfMonth (i,m_nYear); nCounter += m_nDay; nCounter += GetDaysOfMonth(v1.m_nMonth,v1.m_nYear) - v1 .m_nDay; } } else if(nAño > 0) { for( int i=v1.m_nAño+1; i nCounter+=GetDaysOfYear(i); for(int i=1; i nContador += GetDaysOfMon th(i,m_nAño); nCounter+=m_nDay; for(int i=v1.m_nMonth+1; i<13; i++) nCounter += GetDaysOfMonth(i,v1.m_nYear); nCounter += GetDaysOfMonth(v1.m_nMonth,v1.m_nYear) - v1.m_nDay; nCounter += GetDaysOfMonth(v1. m_nDay; } Devolver nCounter; } fecha nula::Establecer(int n1, int n2, int n3) { if(n1 > 999) { m_nAño = n1; m_nMes = n2 ;< m_nDay = n3 } else { m_nMonth = n1; p> p> m_nDía = n2; m_nAño = n3; } } void main() { fecha d1,d2; d1.Set(1985,1,1); // Cumpleaños d2.Set (2007,12,7); // Hoy int nDays = d2 - d1; printf("El cumpleaños falta %d días para hoy\n ",nDays); }