- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
long Date :: ConvertToDays()
{
int M=0,Y=0;
for(int i=2;i<=m_Year;i++)
{
if((i%4 == 0) && (i%100 !=0) || (i%400==0))Y+=366;
else Y+=365;
}
for(i=2;i<=m_Month;i++){
if (i == 1)M=0;else
if ((((m_Year%4 == 0) && (m_Year%100 !=0) || (m_Year%400==0)) && (i == 3)))M+=29;else
if ((((m_Year%4 != 0) || ((m_Year%100 ==0) && (m_Year%400 !=0))) && (i == 3)))M+=28;else
if ((i == 2) || (i == 4) || (i == 6) || (i == 8) || (i == 9) || (i == 11))M+=31;else
if ((i == 5) || (i == 7) || (i == 10) || (i == 12))M+=30;
}
return m_Day+M+Y;
}
Не понятно почему цикл с двойки начинается. Нулевого года н.э. не было, но первый то был.
Потому что
int M=0,Y=0;
...
if (i == 1) M=0; else
Автор решил пропустить бесполезную строку, но забыл удалить её
КГ/АМ
for(i=2;i<=m_Month;i++){
if (i == 1)M=0;else
задача для 1-го курса, 1-й лабы, как разминочная. не более.
if (i == 1)M=0;else
)
С википедии :
Так что до этой даты високосным годом был тот, который просто делился на 4.