当前位置:首页 » 编程语言 » c语言年月日的计算
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言年月日的计算

发布时间: 2023-02-01 01:40:53

A. 用c语言写一个函数,给出年月日,计算该日是该年的第几天

#include <stdio.h>

int main()
{
int year,month,day;//年月日
int judge,i;
int sum=0;//标记天数
int date[2][12]={
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};//储存闰年和非闰年每一月的天数
printf("输入年月日:");
scanf("%d %d %d",&year,&month,&day);

judge=(year%4==0)||(year%400==0 && year%100!=0);
//判断年份是不是闰年 是闰年judge就是1;否则就是0

for(i=0;i<month-1;i++)//加month之前的所有天数
sum+=date[judge][i];
sum+=day;//加当天月份的天数day

printf("它是%d年中的第%d天\n",year,sum);
return 0;
}

B. C语言程序,输入年月日算出当天星期几

先做一个函数,计算1900年1月1日到该天的天数,然后用膜除求出星期几并输出。

具体代码如下:

#include<stdio.h>
#include<stdlib.h>

intDay(inty,intm,intd);

intmain(intargc,char*argv[]){
inti;//循环变量
intyear,month,day;//读取用户输入的年月日
intdays;//储存从1900-1-1到该天的天数
intweek=0;//储存求余后的星期
//字符串组合输出星期
charb[]={"星期"};
charc[7][4]={"日","一","二","三","四","五","六"};

loop:printf("请输入年月日:(空格分隔) ");
scanf("%d%d%d",&year,&month,&day);
days=Day(year,month,day);
//增强程序的健壮性
if(days==-1)
{
printf("输入格式有误,");
fflush(stdin);//防止用户输入字母等其他非数字字符
gotoloop;
}
else
{
week=days%7;//用求余计算星期几
printf("%d年%d月%d日是%s%s ",year,month,day,b,c[week]);
}
system("pause");
return0;
}

//函数功能:输入年月日,输出1900-1-1到该天的天数,-1位输入不合法
intDay(inty,intm,intd)
{
inti;
intr=0;//储存1900到该天的闰年个数
inta[]={31,28,31,30,31,30,31,31,30,31,30};//m给每出月的天数

if(y>=1900&&m>0&&m<13&&d>0&&d<32)
{
for(i=1900;i<=y;i++)//计算闰年的个数
{
if(i%400==0||i%100!=0&&i%4==0)
r++;
}
for(i=0;i<m-1;i++)//统计当年1月1日到当月的天数
{
d+=a[i];
}
if((y%400==0||y%100!=0&&y%4==0)&&m<3)//如果当年是闰年但不到二月就不能算进去
r--;
return365*(y-1900)+r+d;
}
else
return-1;
}

C. c语言年月日计算

首先,你的闰年判断就有问题。教你个口诀:“四年一润,一百年不润,四百年再润”。

其实就可以用if(yr%4==0||yr%100!=0&&yr%400==0){那么是闰年}

你的检验判断也可以利用mont数组的,首先判断是不是在闰年,然后判断输入days是不是大于的mont[mn](如果是闰年要判断二月+1)。

D. c语言结构体计算年月日问题,问题如图

这个相对比较简单 教你吧,你先建立两个数组,一个写闰年每月日期数,一个写平年的。判断时,先判断闰年还是平年,然后在一个一个月判断,记得要用个记录器,把已经算了的日期数加起来,最后加完就是一年第几天了。

给你参考个程序

#include<stdio.h>
constintrun_everymonth_days[]={0,31,29,31,30,31,30,31,31,30,31,30,31},
pin_everymonth_days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
intyear,month,day,number;//全局变量初始值本身就会是0不用再给number赋值
intrun()
{
Qfor(inti=1;i<month;i++)//判断执行到输入月份前一月
Qnumber+=run_everymonth_days[i];
:number+=day;
}
intping()
{
9for(inti=1;i<month;i++)
5number+=pin_everymonth_days[i];
3number+=day;
}
intmain()
{
4scanf("%d%d%d",&year,&month,&day);
3if((!(year%4)&&year%100)||!(year%400))
8run();
1elseping();
4printf("%d ",number);
3return0;
}

E. C语言,求年月日

首先判定年份是不是闰年,其次你使用各数组把年份的月存储下来(分闰年和平年),然后用一个循环来叠加和你输入的第二个数做笔记如果小了继续叠加,在叠加的过程中使用一个计数器,那个就是月份,当叠加的数大于那个天数了,再做差计算式那个月的第几天!

F. C语言日历的年月日,算出某月某日是一年的多少天问题,

看了你得,写的太复杂了,根据题意重写了一个,希望能帮助你

#include<stdio.h>

void main()

{

int year,m,d,day,days=0,i;

printf("请输入年月日: ");

scanf("%d%d%d",&year,&m,&d);

for(i=1;i<m;i++)

{

switch(i)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:day=31;break;

case 4:

case 6:

case 9:

case 11:day=30;break;

case 2:if(year%4==0&&year%100!=0||year%400==0)

{day=29;break;}

else

{day=28; break;}

}

days+=day;

}

printf("是该年的第%d天",days+d);

}

G. C程序:给出年月日,计算该日是该年的第几天

void main()
{
int year, month, day;
int days;
printf("请输入日期(年 月 日):");

while(1)
{
scanf("%d,%d,%d", &year, &month, &day);
if ((month<13)&&(month>0)&&(day<32)&&(day>0))
break;
system("cls");
printf("输入错误,请重新输入日期(年 月 日):");
}
printf("%d年%d月%d日", year, month, day);
days = sum_day(month, day);
if(leap(year) && month>=3)
days = days + 1;
printf("是该年的第%d天.\n", days);
getch();
}

H. C语言编程:给定一个日期(年/月/日)计算该日期是所在年的第几天。

//1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
//情况,闰年且输入月份大于3时需考虑多加一天。
#include<stdio.h>
void
main(){
int
year,month,day,i,leap;
int
fleap(int
a);
printf("请输入年月日如(2009,1,1):");
scanf("%d,%d,%d",&year,&month,&day);
//printf("%d,%d,%d\n",year,month,day);
switch(month){
case
1:i=0;break;
case
2:i=31;break;
case
3:i=31+28;break;
case
4:i=31+28+31;break;
case
5:i=31+28+31+30;break;
case
6:i=31+28+31+30+31;break;
case
7:i=31+28+31+30+31+30;break;
case
8:i=31+28+31+30+31+30+31;break;
case
9:i=31+28+31+30+31+30+31+31;break;
case
10:i=31+28+31+30+31+30+31+31+30;break;
case
11:i=31+28+31+30+31+30+31+31+30+31;break;
case
12:i=31+28+31+30+31+30+31+31+30+31+30;break;}
leap=fleap(year);
if(leap==1)
{
i=i+day+1;
printf("\n\n\n\n\n
%d年是润年\n",year);}
else
{i=i+day;printf("\n\n\n\n\n
%d年不是润年\n",year);}
printf("%d年%d月%d是%d年的第%d天",year,month,day,year,i);
getch();}
int
fleap(int
a){
int
leap;
if(a%4==0)
{
if(a%100==0)
{
if(a%400==0)
leap=1;
else
leap=0;
}else
leap=1;
}
else
leap=0;
return(leap);}//判断润年的