请看下面一代码.为什么我用VC++就运行不了.好像要有个头文件.那是什么.

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:08:13
long s1(long y,long m,long d)
{ long s2(long n,long y);
long n,k;k=0;
for(n=1;n<m;n++)
{k+=s2(n,y);}
k+=d;
return k;
}

long s2(long n,long y)
{long s3(long y);
long g,t;
if(n==2)
{if(s3(y)) t=29;
else
t=28;}
if(n==1||n==3||n==5||n==7||n==8||n==10||n==12) t=31;
if(n==4||n==6||n==9||n==11) t=30;return t;
}

long s3(long y)
{
long pk;
if(y%4==0&&y%100!=0||y%400==0)
pk=1;
else pk=0;
return pk;
}

long s4(long y,long m,long d)
{
if(m>12) {printf("输入错误! 一年至多有12个月!\n");}
else
{if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{if(d>31) printf("输入错误! %d月至多有31天!\n",m);}
if(m==4||m==6||m==9||m==11)
{if(d>30) printf("输入错误! %d月至多有30天!\n",m);}
if(m==2)
if(s3(y))
{if(d>29) printf("输入错误! 今年是闰年! %d月至多有29天!&#

闰年
闰年: 1.为了弥补人为的年份规定与地球实际绕日公转的时间差,2.而人为把时间差补上了的年份,该年即为闰年.

遵循的规律为: 四年一闰,百年不润,四百年再润.

if((year % 400 == 0)|(year % 4 == 0)&(year % 100 != 0))//闰年的计算方法

详情如下:

闰年(leap year),在公历(格里历)或夏历中有闰日的年份,以及在中国旧历农历中有闰月的年份。地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,于第四年加于2月,使当年的历年长度为366日,这一年就为闰年。现行公历中每400年有97个闰年。夏历的平年只有354日,比12个朔望月短0.3671日,为使每月初一与月朔相合,规定每30年中有11年的年底增加1日,这一年的历年有355日,即为闰年。中国旧历农历作为阴阳历的一种,每月的天数依照月亏而定,一年的时间以12个月为基准,平年比一回归年少约11天。为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月。在加有闰月的那一年有13个月,历年长度为384或385日,这一年也称为闰年。
按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。

也就是我们通常所说的:
四年一闰,百年不闰,四百年再闰。

西方公历的“闰年”
阳历中有闰日的年份叫闰年,相反就是平年,平年为365天,闰年为366天。在公历(格里历)纪年中,平年的二月为28天,闰年的二月为29天。闰年平月2月29日为闰日。

增加闰日的原因
现时的公历以回归年为“年”的计算基础,而一个回归年大约等于365.24220日。因为在平年公历只计算365日,结果四年后便会累积0.24220×4=0.9688日,大约