飞利浦醇汤汽锅怎么样:如何简化计算天数?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 08:17:20
要求用户输入年、月、日。
输出该日是该年的第几天?除了逐一把所有月份的情况都列出来再加上天数,再判断闰年和是否超过2月以外,还有没其他更简单或者通用的方法来计算是第几天?

你这个是指什么样的应用环境下的
如果这个应用是基于数据库的
那就好办 你可以用sql直接query出该日是该年的第几天
如果不是基于数据库的 那你就职能按用程序按照1-12月的规律来计算了

你可以用数组的索引方式来计算,首先分大月和小月,大月设1,小月设0,(这里有个好的方法来设:可以用堆栈的方法,因为7,8份都是大月也就是31天的,而后其他情况都是搁一个月出现大月,可以将7到3月的值存放到原先3到7的后面作为8到12月的值)这样如果你输入的是6月2日,那么就是1月加两月,再加上三月你输入的日数,也就是for(i=1;i<=n;i++) s+=a[i]+30;s-=pd();/*pd()函数用来判断是否是闰年,平年返回2,闰年返回1*/

#include <stdio.h>
void main()
{int result=0,year,month,day,i;
scanf("%d-%d-%d",&year,&month,&day);
for(i=0;i<month-1;i++)result+=(i%7)%2?30:31;
result+=day;
if(month>2)result-=((year%4==0&&year%100!=0)||year%400==0)?1:2;
printf("%d\n",result);
}
//思路:找出1-12月份天数规律发现((月份-1)%7)%2 为1时,该月有30天;为0时有31天。这样用一个循环计算出某月份前整月的天数,加上当月的天数,>2月时刨去2月多加的天数。