AOJ_0125 Day Count
問題
解法
1年1月1日から何日経過しているかを計算するといい。
この時、フェアフィールドの公式を使うと便利。
#include <cstdio> using namespace std; int dc(int y, int m, int d){ if(m <= 2){ y--; m += 12; } return 365*y+y/4-y/100+y/400+306*(m+1)/10+d-428; } int main(){ int y1, m1, d1, y2, m2, d2; while(scanf("%d %d %d %d %d %d", &y1, &m1, &d1, &y2, &m2, &d2)){ if(y1==-1||m1==-1||d1==-1||y2==-1||m2==-1||d2==-1) break; printf("%d\n", dc(y2,m2,d2)-dc(y1,m1,d1)); } return 0; }