c语言年月日计算函数 c语言输入年月日计算天数

用C语言写一个函数,给出年月日 , 计算该日是该年的第几天 用#include开头的代码如下c语言年月日计算函数:
#include iostream
using namespace std;
【c语言年月日计算函数 c语言输入年月日计算天数】int leap_year(int n)
{
if(n%400==0||(n%4==0n%100!=0))
return 1;
else
return 0;
}
int main()
{
int year,month,day;
int dayCount=0,i;
int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};
cout"请输入当前c语言年月日计算函数的年,月,日: ";
cinyearmonthday;
for(i=0;imonth-1;i++)
dayCount+=mon[i];
if(month2)
dayCount+=day+leap_year(year);
else
dayCount+=day;
cout"该日是该年c语言年月日计算函数的第几天: "dayCountendl;
return 0;
}
C语言程序,输入年月日算出当天星期几先做一个函数,计算1900年1月1日到该天的天数 , 然后用膜除求出星期几并输出 。
具体代码如下:
#include stdio.h
#include stdlib.h
int Day(int y,int m,int d);
int main(int argc, char *argv[]) {
int i;//循环变量
int year,month,day;//读取用户输入的年月日
int days;//储存从1900-1-1到该天的天数
int week=0;//储存求余后的星期
//字符串组合输出星期
char b[]={"星期"};
char c[7][4]={"日","一","二","三","四","五","六"};
loop:printf("请输入年 月 日:(空格分隔)\n");
scanf(" %d%d%d",year,month,day);
days=Day(year,month,day);
//增强程序的健壮性
if(days==-1)
{
printf("输入格式有误,");
fflush(stdin);//防止用户输入字母等其他非数字字符
goto loop;
}
else
{
week=days%7;//用求余计算星期几
printf("%d年%d月%d日是%s%s\n",year,month,day,b,c[week]);
}
system("pause");
return 0;
}
//函数功能:输入年月日,输出1900-1-1到该天的天数,-1位输入不合法
int Day(int y,int m,int d)
{
int i;
int r=0;//储存1900到该天的闰年个数
int a[]={31,28,31,30,31,30,31,31,30,31,30}; //m给每出月的天数
if(y=1900m0m13d0d32)
{
for(i=1900;i=y;i++)//计算闰年的个数
{
if(i%400==0||i%100!=0i%4==0)
r++;
}
for(i=0;im-1;i++)//统计当年1月1日到当月的天数
{
d+=a[i];
}
if((y%400==0||y%100!=0y%4==0)m3)//如果当年是闰年但不到二月就不能算进去
r--;
return 365*(y-1900)+r+d;
}
else
return -1;
}
c语言年月日计算首先 , 你的闰年判断就有问题 。教你个口诀:“四年一润,一百年不润,四百年再润” 。
其实就可以用if(yr%4==0||yr%100!=0yr%400==0){那么是闰年}
你的检验判断也可以利用mont数组的,首先判断是不是在闰年,然后判断输入days是不是大于的mont[mn](如果是闰年要判断二月+1) 。
c语言编程:输入年月日,求出该天是该年的第几天#includestdio.h
intmain()
{intday,month,year,sum,leap;
printf("\n请输入年、月、日,格式为:年,月,日(2015,12,10)\n");
scanf("%d%d%d",year,month,day);//格式为:20190510
switch(month)//先计算某月以前月份的总天数
{case1:sum=0;break;
case2:sum=31;break;
case3:sum=59;break;
case4:sum=90;break;
case5:sum=120;break;
case6:sum=151;break;
case7:sum=181;break;
case8:sum=212;break;
case9:sum=243;break;
case10:sum=273;break;
case11:sum=304;break;
case12:sum=334;break;
default:printf("dataerror");break;}
sum=sum+day;//再加上某天的天数
if(year%400==0||(year%4==0year%100!=0))
{//判断是不是闰年

推荐阅读