0
点赞
收藏
分享

微信扫一扫

第几天(日期计算)2014-2-21

小安子啊 2022-12-02 阅读 91


​​第几天(日期计算)2014-2-21​​


Problem Description



给定一个日期,输出这个日期是该年的第几天。



Input



输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。



Output



对于每组输入数据,输出一行,表示该日期是该年的第几天。



Sample Input



1985/1/20
2006/3/12



Sample Output



20
71



#include<stdio.h>
int main()
{
 int y,m,d,i;
 int t[]={31,28,31,30,31,30,31,31,30,31,30,31};
 while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
 {
 int days=0;
   
 
  if(y%4==0&&y%100!=0||y%400==0)
  {
  if(m>2)
  {
   for(i=0;i<m-1;i++)
  days+=t[i];
  days+=d;
  days++;
  }
 else
  {
  for(i=0;i<m-1;i++)
  days+=t[i]; 
  days+=d;
  }
 }
  else
  {
  for(i=0;i<m-1;i++)
  days+=t[i]; 
  days+=d;
        }
        printf("%d\n",days);
 }
 return 0;
}

优化后的代码:

#include<stdio.h>
int main()
{
 int y,m,d,i;
 int t[]={31,28,31,30,31,30,31,31,30,31,30,31};
 while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
 {
 int days=d;
  if(y%4==0&&y%100!=0||y%400==0)
 if(m>2)
 t[1]++;
 for(i=0;i<m-1;i++)
 days+=t[i];
 printf("%d\n",days);
 }
 return 0;
}

举报

相关推荐

0 条评论