当前位置:首页 » 编程语言 » c语言求第几天
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求第几天

发布时间: 2023-01-29 13:40:17

c语言编写days函数 计算该日是该年的第几天怎么做

#include<stdio.h>

int days(int y,int m,int d)

{int i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

if(y<1||m<1||d<1||d>a[m]+(y%4==0&&y%100>0||y%400==0))

{printf("%d-%d-%d不是一个有效的日期! ",y,m,d);

return -1;

}

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

d+=a[i];

return d;

}

int main()

{int year,month,day,answer;

printf("请输入一个日期yyyy-mm-dd ");

scanf("%d-%d-%d",&year,&month,&day);

answer=days(year,month,day);

if(answer>0)

printf("%d-%d-%d 是该年的第 %d 天. ",year,month,day,answer);

getch();

return 0;

}

Ⅱ C语言计算某年某月某日 是该年的第几天

#include
void main()
{
int y,m,d;
int sum=0;
int flog;//标识是否是闰年
printf("请输入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
if(( y%4==0 && y%100!=0 ) || y%400==0)
flog=1;
else
flog=0;
while((y<0)||(m>12||m<0)||(d<0||d>31)||((m%2==0)&&(d==31))||((flog==1)&&(m==2)&&(d>28)))
{
printf("input errro!\n");
printf("请输入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
}
switch (m-1)
{
case 12: sum+=31;
case 11: sum+=30;
case 10: sum+=31;
case 9: sum+=30;
case 8: sum+=31;
case 7: sum+=31;
case 6: sum+=30;
case 5: sum+=31;
case 4: sum+=30;
case 3: sum+=31;
case 2:
if(flog==1)
//这里改一下
sum+=28;
else
sum+=30;
case 1: sum+=31;break;
//这里加上一个break语句
default:printf("非法月份\n");
break;
}
sum=sum+d;
if(flog==1)
printf("%d is leap year!\n",y);
printf("这一天是这年的第%d天",sum);
}

Ⅲ 怎么用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语言输入年月日计算该日是该年第几天,

//根据用户输入的日期计算出该日期是该年的第多少天。
#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 y,m,d,i,n=0,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

printf("Please input a date (yyyy mm dd): ");

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

if(y%4==0&&y%100!=0||y%400==0)a[2]++;

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

n+=a[i];

printf("%d-%d-%d is No.%d day of the year. ",y,m,d,n);

getch();

return 0;

}

Ⅵ C语言求第几天是几月几日程序的问题大神们帮帮忙

我改了两个地方,一个是新声明了两个变量moth, day, 然后把指针pmoth和pday指向这两个变量。 另一个是scanf("%d %d",...),第二个%d后面的空格去掉了。测试过,先输入回车,然后输入年月,中间用空格分隔。 main() { int year,yearday,c; int moth, day; int *pmoth; int *pday; pmoth = &moth; pday = &day; printf("请输入回车以继续\n"); while((c=getchar())=='\n') { printf("请输入某年第多少天:"); scanf("%d %d",&year,&yearday); change(year,yearday,pmoth,pday); printf("%d月%d日\n",*pmoth,*pday); } return 0; }

Ⅶ 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);}//判断润年的

Ⅷ c语言编程:输入某年某月某日,计算出这一天是该年的第几天该怎么解答啊

//输入年月日,输出是该年第几天
#include<stdio.h>
int sum(int month,int day)
{
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for(i=1;i<month;i++)
day+=days[i];
return(day);
}

int leap(year)
{
int leap=0;
if((year%4==0&&year%100!=0)||(year%400==0))
leap=1;
return leap;
}

void main()
{
int year,month,day,num;
printf("Please input year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day);
num=sum(month,day);
if(leap(year)&&month>=3)
num++;
printf("It is the %dth day.\n",num);
}

Ⅸ c语言求日期是这一年的第几天的最简便写法是什么

#include<stdio.h>

structDate{
inty;
intm;
intd;
};

voidmain()
{
Datedate;
intmonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d%d",&date.y,&date.m,&date.d);
intflag=0; //闰年且月份大于2就改为1
if(((date.y%100!=0)&&(date.y%4==0))||(date.y%400==0)&&date.m>2){
flag=+1;
}
inti;
intwhatday=0; //存放第几天
for(i=0;i<date.m;i++)
{
whatday+=month[i];
}
whatday+=date.d+flag;
printf("%d ",whatday);
}

等着啊,立马给你敲出来!