① c语言输入年月日计算该日是该年第几天,
//根据用户输入的日期计算出该日期是该年的第多少天。
#include
#include
//system("pause")
main()
{
int year,month,day,total,leap; //total总天数 ,leap用于闰年的2月天数
printf("请输入年 月 日(按顺序,中间用空格隔开):");
scanf("%d%d%d",&year,&month,&day);
if((year%4==0 && year%100!=0) || year%400==0) //判断是否闰年,闰年2月多一天,所以闰年leap为1,平年为leap为0。
{
leap=1;
}
else
{
leap=0;
}
switch(month) //根据月份计算对应的最终天数。
{
case 1: total=day;break;
case 2: total=31*1+day;break;
case 3: total=31*1+28+leap+day;break;
case 4: total=31*2+28+leap+day;break;
case 5: total=31*2+28+leap+30*1+day;break;
case 6: total=31*3+28+leap+30*1+day;break;
case 7: total=31*3+28+leap+30*2+day;break;
case 8: total=31*4+28+leap+30*2+day;break;
case 9: total=31*5+28+leap+30*2+day;break;
case 10: total=31*5+28+leap+30*3+day;break;
case 11: total=31*6+28+leap+30*3+day;break;
case 12: total=31*6+28+leap+30*4+day;break; //12月之前的11个月中有6个31天,4个30天,2月为28天+leap。
}
if(year>=1 && year<=9999 && month>=1 && month<=12 && day>=1 && day<=31) //判断输入是否正解,年份最大为9999,可自行更改。
{
printf("\n\t%d月%d日止,%d年已过去%d天。\n\n",month,day,year,total);
system("pause"); //按任意键继续...
}
else
{
printf("\n\t错误\n\n");
system("pause"); //按任意键继续...
}
return 0;
}
② C语言程序(判断每月天数以及是否为闰年)
源代码如下:
#include <stdio.h>
int main()
{
int year;
printf("输入年份: ");
scanf("%d",&year);
if(year%4 == 0)
{
if( year%100 == 0)
{
// 这里如果被 400 整数是闰年
if ( year%400 == 0)
printf("%d 是闰年", year);
else
printf("%d 不是闰年", year);
}
else
printf("%d 是闰年", year );
}
else
printf("%d 不是闰年", year);
return 0;
}
(2)c语言如何判断闰年第几天扩展阅读
1、判断输入的年份是否为闰年,自定义函数 leap() 来进行判断。该函数的核心内容就是闰年的判断条件即能被 4 整除但不能被 100 整除,或能被 400 整除。
2、求输入日期距 2011 年 1 月 1 日有多少天。首先判断 2011 年距输入的年份有多少年,这其中有多少年是闰年就将 sum 加多少个 366,有多少年是平年便将 sum 加上多少个 365。
③ C语言如何判断是闰年,闰年判断条件
1、首先在电脑中打开C-Free 5编译器,int year=0;定义year变量为整形并初始化值0,用于储存年份。
④ 怎么用C语言输入一个日期,求该日期是该年的第几天
我大概给个思路,代码是现写的 没调试
先定义每个月的天数,2月按28天算
输入年月日后,根据年判断是否闰年(闰年加1天),再从1月加到当月的前一月,再加上日期就可以了
#include <stdio.h>
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
main()
{int yy,mm,dd, days;
int i;
printf("input year:"); scanf("%d", &yy);
printf("input month:"); scanf("%d", &mm);
printf("input day:"); scanf("%d", &dd);
/* 如果大于2月,要做闰年的判断,忘了,不一定准 */
if( mm > 2 && ((year%4==0 && year%100!=0) || year%400==0) ) days = 1;
else days = 0;
/* 加上前面各整月的天数 */
for(i = 0; i < mm-1; i++) days += month[i];
/* 加上日数 */
days += dd;
printf("This is the %d day of year %d!!
", days, yy);
}
比如输入 1999 2 1
应该输出:This is the 32 day of year 1999!!
⑤ C语言如何判断是闰年,闰年判断条件
C语言如何判断是闰年,闰年判断条件
不等价,因为判断闰年的标准是:1、能整除4且不能整除100 2、能整除400
你的意思是:
每4年有个闰年<——>1896是闰年,4年后1900也是闰年<——>除以4就是闰年
但严格上讲,"每4年一个闰年"这说法不严谨。应该是四年一闰,百年不闰,四百年再闰。
为什么呢?
1、产生闰年原因:地球绕太阳执行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当年的历年长度为366日,这一年就为闰年。
2、但是,上面算法又有了一个问题。就是0.2422*4=0.9688,比一天还差0.0322天,每4年差0.0322天不算多,但每400年就会差了约3天。即是说,假如每4年一个闰年,那么每400年就会有100个闰年,然后会多算了3天。
所以,就规定了每四百年中要减少三个闰年。公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是100的倍数,也是平年。
综合以上2点,就有了现有的闰年判断标准。
平闰年怎么区分?
判定公历闰年遵循的规律为: 四年一闰,百年不闰,四百年再闰.
公历闰年的简单计算方法:(符合以下条件之一的年份即为闰年)
1。能被4整除而不能被100整除。(如2004年就是闰年,1900年不是)
2。能被400整除。(如2000年是闰年)
下面有个简单的方法判断是否是闰年。
(1)判断年份是否是闰年,只须看年份的末两位,如果末两位数能整除4,那么就是闰年,反之,就不是。
(2)遇到末两位数都是0的年份,我们就看年份的前两位数;如果前两位数能整除4,那么就是闰年,反之,就不是。
(3)如遇到2004年末两位是04的,可以直接把它看做1位数,如果这个数能整除4,那么就是闰年,反之,就不是。
怎样区分平年和闰年?
4的倍数的年份就是闰年,比如,2008年就是闰年,+4,即2012年也是闰年~~
闰年的二月份有29天,平年都是28天~~是因为平年的二月份其实是28天零出来几个小时,三个平年之后,那多余出来的几个小时加和之后就正好凑足一整天,也就是闰年的2月份多出来的那一天!
怎样区分闰年与非闰年
如果那年的年份能除以4没有余数,那么那年就是闰年,如果不行,就是平年.
比如说,2004,2008,2012,它们都能除尽4,没有余数,所以都是闰年.
然后闰年是366天,平年是365天,相差的一天主要是在2月,闰年有29号,平年没有.
什么是平年?什么是闰年?平年与闰年怎样区分??
一般的,能被4整除的年份是闰年,不能被4整除的年份是平年.如:1988年2008年是闰年;2005年2006年2007年是平年.但是如果是世纪年(也就是整百年),就只有能被400整除才是闰年,否则就是平年.如:2000年就是闰年,1900年就是平年
闰年的2月有29天,平年的2月只有28天.
怎么判断一个年份是不是闰年
1、普通情况求闰年只需除以4可除尽即可 年/4余数为0
2、如果是100的倍数但不是400的倍数,那就不是闰年了,即末两位都是零的整除400才行
像1700、1800、1900、2100都不是闰年,但是2000、2400是的.
3、2100年不是闰年,闰年不是象你们所说以加4为判断闰年标准的,所以闰年有些4年一次,但是有些是8年一次的.例如:1896年是闰年,但1900年不是,到1904年才是闰年.
⑥ C语言编程计算该日期是该年第几天
首先判断是否闰年,是闰年的话2月有29天否则就只有28天,然后将前面的月份的天数加起来再加上本月天数就可以得到该日期是该年第几天了
⑦ C语言编程:输入某年某月某日,判断这一天是这一年的第几天
#include <stdio.h>
int getDaysByMonth(int m,int d,char flag){
int c;
if(flag=='r'){//闰年
if(m==2){//2月是29天
return (31+d);
}else if(m>2){
c=0;
m=m-1;
for(;m>0;m--){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=29;
}else{
c+=30;
}}
return c+d;
}else{
return d;
}
}else{//平年
if(m==2){//2月是28天
return (31+d);
}else if(m>2){
c=0;
m=m-1;
for(;m>0;m--){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=28;
}else{
c+=30;
}}
return c+d;
}else{
return d;
}}}
void main(){
int y,m,d,count=1;
printf("请输入年月日(例如2017-01-01):");
scanf("%d-%d-%d",&y,&m,&d);
while( ((((y%4==0 && y%100!=0)||(y%400==0)) && (m==2)) && d>29) || (y%400!=0
&& y%4!=0 && m==2 && d>28) || ((m==1 || m==3 || m==5 || m==7 || m==8 || m==10 ||
m==12)&&d>31) || ((m==4 || m==6 || m==9 || m==11)&& d>30)){
printf("请输入年月日(例如2017-01-01):");
scanf("%d-%d-%d",&y,&m,&d);}
//先判断是否为闰年
if((y%4==0 && y%100!=0)||(y%400==0)){//闰年
count=getDaysByMonth(m,d,'r');
}else{//平年
count=getDaysByMonth(m,d,'n');}
printf("%d-%02d-%02d是今年的第%d天 ",y,m,d,count);
putchar(' ');
}
网络-运算符优先级