注意闰年,是4的倍数,不是100的倍数,但可以是400的倍数
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int DayNum(int Y, int M, int D)
{
int RunNianFlag = 0;
// int BeforeThisMonth=0;
if ((Y % 100 && !(Y % 4)) || !(Y % 400))
RunNianFlag = 1;
int BeforeThisMonth[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
if (M >= 3 && RunNianFlag == 1)
return BeforeThisMonth[M - 1] + D + 1;
else
return BeforeThisMonth[M - 1] + D;
// switch(M)
// {
// case 1:
// BeforeThisMonth=0;
// break;
// case 2:
// BeforeThisMonth=31;
// break;
// case 3:
// BeforeThisMonth=31+28;
// break;
// case 4:
// BeforeThisMonth=31+28+31;
// break;
// case 5:
// BeforeThisMonth=90+30;
// break;
// case 6:
// BeforeThisMonth=90+30+31;
// break;
// case 7:
// BeforeThisMonth=90+30+31+30;
// break;
// case 8:
// BeforeThisMonth=181+31;
// break;
// case 9:
// BeforeThisMonth=181+31+31;
// break;
// case 10:
// BeforeThisMonth=181+31+31+30;
// break;
// case 11:
// BeforeThisMonth=273+31;
// break;
// case 12:
// BeforeThisMonth=273+30+31;
// }
// if(M>=3 && RunNianFlag==1)
// BeforeThisMonth++;
// return BeforeThisMonth+D;
}
int main()
{
int Y, M, D;
while (scanf("%d%d%d", &Y, &M, &D) != EOF)
// while (cin >> Y >> M >> D)
{
cout << DayNum(Y, M, D) << endl;
}
return 0;
}