JD--1070 今年的第几天

题目描述:
输入年、月、日,计算该天是本年的第几天。

输入:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。

输出:
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。

样例输入:
1990 9 20
2000 5 1

样例输出:
263
122

#include<iostream>
#include<cstdio>

using namespace std;

bool leap(int y){
 return y%100!=0&&y%4==0||y%400==0;
}

int days[13][2]={
 0,0,
 31,31,
 28,29,
 31,31,
 30,30,
 31,31,
 30,30,
 31,31,
 31,31,
 30,30,
 31,31,
 30,30,
 31,31
};

int Day(int y,int m,int d){
 int cnt=0;
 for(int i=1;i<m;i++){
  if(leap(y))
   cnt+=days[i][1];
  else
   cnt+=days[i][0];
 }
 cnt+=d;
 return cnt;
}

int main(){
 int y,m,d;
 while(cin>>y>>m>>d){
  printf("%d\n",Day(y,m,d));
 }
 return 0;
}
发布了20 篇原创文章 · 获赞 0 · 访问量 283

猜你喜欢

转载自blog.csdn.net/qq_36393803/article/details/104776998
今日推荐