语言:c语言
工具:Code::Blocks
代码:
#include<stdio.h>
#include<string.h>
//变量接受值,指针接受地址
#define maxsize 100
int main()
{
char date[20];
puts("请输入一个日期:");
scanf("%s", date);
if(strlen(date)!=8)
{
puts("格式错误");
exit(0);
}
int year, month, day;
int leap=0;//能被400整除 || 能被4整除但不能被100整除的是闰年
year = (date[0]-'0')*1000+(date[1]-'0')*100+(date[2]-'0')*10+(date[3]-'0')*1;
month = (date[4]-'0')*10+(date[5]-'0')*1;
day = (date[6]-'0')*10+(date[7]-'0')*1;
//printf("%d, %d, %d",year,month, day);
if(month<1||month>12||day<1||day>31)
{
puts("数据错误");
exit(0);
}
int monthes[13] = {0, 31, 28, 31, 30,31, 30,31, 31, 30, 31,30,31};
if((year%400==0) || (year%4==0 && year %100!=0))
{
leap = 1;
}
if(leap==1)
{
monthes[2] = 29;
}
int sumday = 0;
for(int i=1; i<month; i++)
{
sumday+=monthes[i];
}
sumday+=day;
printf("日期%d年%d月%d日是该年中的第%d天",year,month, day, sumday);
}
运行结果:
备注:之前关于闰年不闰年的搞得我都快糊涂了……,这里解释一个闰年满足下面两个任意条件就行
- 可以被四百整除
- 可以被4整除, 不能被100整除