Codeforces Round #183 (Div. 2) B. Calendar

题目:http://codeforces.com/contest/304/problem/B
#include <iostream> #include <stdio.h> #include <string> #include <string.h> #include <algorithm> #include <math.h> #include <fstream> #include <vector> #include <map> #include <queue> #include <stack> #include <math.h> #include <stdlib.h> #include <set> #include <sstream> using namespace std ; int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; int leapyear(int y){ return (!(y%4) && y%100) || (!(y%400)); } int main(){ int ys,ms,ds,ye,me,de; while(~scanf("%d:%d:%d",&ys,&ms,&ds)){ scanf("%d:%d:%d",&ye,&me,&de); if(ye<ys || (ye == ys && ms>me) || (ye == ys && ms == me && ds > de)){ swap(ys, ye); swap(ms, me); swap(ds, de); } int ans = 0; if(ys == ye && ms == me){ printf("%d\n",de-ds); continue; } if(ys == ye){ if(leapyear(ys) && ms == 2) ans += month[2]+1 - ds; else ans += month[ms] - ds; for(int i = ms+1;i < me;i++){ if(leapyear(ys) && i == 2) ans += month[i]+1; else ans += month[i]; } ans += de; printf("%d\n",ans); continue; } if(leapyear(ys) && ms == 2) ans += month[2]+1 - ds; else ans += month[ms] - ds; //printf("%d\n",ans); for(int i = ms+1;i <= 12;i++){ if(leapyear(ys) && i == 2) ans += month[i]+1; else ans += month[i]; } //printf("%d\n",ans); for(int i = ys+1;i < ye;i++){ if(leapyear(i)) ans += 366; else ans += 365; } //printf("%d\n",ans); for(int i = 1;i < me;i++){ if(leapyear(ye) && i == 2) ans += month[i]+1; else ans += month[i]; } //printf("%d\n",ans); ans += de; printf("%d\n",ans); } return 0; }

 

转载于:https://www.cnblogs.com/Roly/archive/2013/05/14/3077129.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值