C语言,输入年月日,判断是这一年的第几天?

作者&投稿:除烁 (若有异议请与网页底部的电邮联系)
编写一个c语言程序,输入一个年月日,输出这个日期是这一年的第几天。(考虑闰年)~

#include void main()
{
int year=0,month=0,day=0,i=0,sum=0;
while(1)
{
printf("请输入年份:");
scanf("%d",&year);
printf("请输入月份:");
scanf("%d",&month);
printf("请输入日期:");
scanf("%d",&day);i=0; //i变量是为了控制月和日的格式是否输入正确;
switch(month) //判断每个月的日期是否输入正确;
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day>0&&day<=31)
{
i=1;
}
break;
case 4:
case 6:
case 9:
case 11:
if(day>0&&day<=30)
{
i=1;
}
break;
case 2: //2月闰年可以输入29日;
if((year%4==0&&year%100!=0)||year%400==0)
{
if(day>0&&day<=29)
{
i=1;
}
}
else
{
if(day>0&&day<=28)
{
i=1;
}
}
break;
default: //如果输入不是1-12月份,那么月份输入有误;
i=0;
break;
}
if(i) //如果i变量为1,那么输入正确,否则重新输入;
{
break;
}
else
{
printf("请输入正确的年月日!!!
");
}
}i=0;
switch(month) //把每个月的日期累加;
{
case 12:
i=i+30;
case 11:
i=i+31;
case 10:
i=i+30;
case 9:
i=i+31;
case 8:
i=i+31;
case 7:
i=i+30;
case 6:
i=i+31;
case 5:
i=i+30;
case 4:
i=i+31;
case 3:
if((year%4==0&&year%100!=0)||year%400==0)
{
i=i+29;
}
else
{
i=i+28;
}
case 2:
i=i+31;
case 1:
;
}
sum=i+day;
printf("%d年%d月%d日是%d年的第%d天
!",year,month,day,year,sum);
}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

1、首先打开vc6.0, 新建一个vc项目。

2、添加头文件和main函数。

3、定义day、month、year、sum、leap 五个变量。

4、使用 scanf给定义的变量赋值。

5、使用switch语句,先计算某月以前的月份的总天数。

6、使用sum, 加上某天的天数。

7、判断是不是闰年。

8、如果是闰年且月份大于2, 总天数应该加一天。

9、使用printf打印sum。

10、运行程序。



以2月10日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

源代码:

#include "stdio.h"

#include "stdlib.h"

int main()
{
int day,month,year,sum,leap;

printf("
please input year,month,day
");

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

switch(month) /*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;

case 2:sum=31;break;

case 3:sum=59;break;

case 4:sum=90;break;

case 5:sum=120;break;

case 6:sum=151;break;

case 7:sum=181;break;

case 8:sum=212;break;

case 9:sum=243;break;

case 10:sum=273;break;

case 11:sum=304;break;

case 12:sum=334;break;
default:printf("data error
");break;
}
sum=sum+day; /*再加上某天的天数*/

if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
{
leap=1;
}
else
{
leap=0;
}

if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
{
sum++;
}
printf("It is the %dth day.
",sum);
return 0;
}

输出

please input year,month,day

2019,02,10

It is the 41th day.

扩展资料

c语言编写程序根据输入的时间分别输出问候语

#include <stdio.h>
int main()
{
int a;
printf("请输入时间,例如:17");

scanf("%d",&a);

if(a<=12&&a>=0) printf("早");

else if(a>12&&a<=14) printf("午");

else printf("晚");

printf("%d",s);

return 0;



1、先定义每个月的天数,2月按28天算输入年月日后,根据年判断是否闰年(闰年加1天),再从1月加到当月的前一月,再加上日期就可以了


2、例程:

#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!!


首先要判断这一年是闰年还是平年,直接用年除以四没有余数就是闰年,在闰年里一共三百六十六天,除二月多一天其他都没什么变化,在平年里,二月一号就是这一年第三十二天,三月一号是第六十天,四月一号就是第九十一天,十月一号就是这一年第二百七十四天。就这样

#include<stdio.h>
int main()
{
int day,month,year,sum=0,leap;
printf("输入年月日如2019 7 12\n");
scanf("%d %d %d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day;
if((year%400==0||(year%4==0&&year%100!=0))&&month>2)
sum++;
printf("这是这一年的第%d天。",sum);
return 0;
}
方法2
#include<stdio.h>
int day_of_year(int (*p)[13],int year,int month,int day)
{
int i,leap;
leap=(year%100!=0 && year%4 ==0||year%400 ==0);
for(i=1;i<month;i++)
day+=*(*(p+leap)+i);
return day;
}
main()
{
static int day_tab[][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%d\n",day_of_year(day_tab,a,b,c));
}


输入年月日,计算该日期是该年第几天(注意平年闰年)c语言编程怎么编?
include<stdio.h>int main(){ int Total = 0,Day = 0,Month = 0,Year = 0,Leap = 0; printf("Please input: Year Month Day\\n"); scanf("%d %d %d",&Year,&Month,&Day); switch(Month) { case 1:Total=0;break; case 2:Total=31;break; case 3:Total=59;break; case...

C语言输入年份和天数输出对应的年月日
C语言输入年份和天数输出对应的年月日的源代码如下:include <iostream> int day(int &year, int &month);int main(){ int year{};int month{};std::cout << "请输入年和月(空格隔开):";std::cin >> year >> month;std::cout << "该月天数:" << day(year, month) << '\\n';...

C语言编程:输入某年某月某日,判断这一天是这一年的第几天?
printf("请输入年月日(例如2017-01-01):");scanf("%d-%d-%d",&y,&m,&d);while( (((y%4==0 && y%100!=0)||(y%400==0)) && (m==2)) && d>29) || (y%400!=0 && y%4!=0 && m==2 && d>28) || ((m==1 || m==3 || m==5 || m==7 || m=...

编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天。_百度...
printf("---输入年,月,日:");while (scanf("%d,%d,%d", &y, &m, &d)==3) { printf("答: %d年%d月%d日是第%d天.\\n\\n---输入年,月,日:", y, m, d, Ymd2Days(y,m,d));} return 0;} 年月日数字用逗号隔开. 想结束的时候输入一个0就可以了. 例如:---输入年,月,...

C语言编程:输入某年某月某日,判断这一天是一年的第几天
printf("请输入年月日(例如2017-01-01):");scanf("%d-%d-%d",&y,&m,&d);while(((y%4==0&&y%100!=0)||(y%400==0))&&(m==2))&&d>29)|| (y%400!=0&&y%4!=0&&m==2&&d>28)|| ((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&d>31)|| (...

C语言:输入一个人的出生年,月,日,再输入当前年,月,日,计算此人的实际年...
\/\/获得当前的日期 int days0 = year*10000+(month-1)*100+day-1; int days1 = today->tm_year*10000+(today->tm_mon-1)*100+today->tm_mday-1; int age = days1-days0;\/\/当日期或者月份不足的时候,会自动从上一级借位,因此计算出的年纪是可靠的,但是月份需要分析:需要...

C语言编程 从键盘输入一个年份和月份,输出该月有多少天(考虑闰年)_百度...
用switch选择的:#include<stdio.h>int main(){int y,m;printf("请依次输入年,月:\\n"); scanf("%d,%d",&y,&m); \/\/上机时注意打逗号,也可修改为其他格式switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("这个月有31天\\n");break;case 2 : if(y%4=...

C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是...
include <stdio.h> void main (){ int y,m,d,c,s,w;printf("请输入8位年月日,以空格隔开:");scanf("%d%d%d",&y,&m,&d);if (m==1) c=d;else if (m==2) c=31+d;else if (m==3) c=31+28+d;else if (m==4) c=31+28+31+d;else if (m==5) c=31+28+31...

c语言:输入一个日期,包括年月日。用\/隔开,计算这个日期是这一年的第...
month,day,n=0,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};scanf("%d\/%d\/%d",&year,&month,&day);if((year%4==0&&year%100)||year%400==0) a[2]=29;for(i=0;i<=month-1;i++) n+=a[i];printf("这个日期是%d年的第%d天。",year,n+day);} 运行示例:

C语言 输入一位学生的生日(年月日),并输入当前的日期(年月日),输出该...
include<stdio.h> int main(){ int year,month,day;int birthY,birthM,birthD;int N;printf("请输入生日");scanf("%d%d%d",&birthY,&birthM,&birthD);printf("请输入当前日期");scanf("%d%d%d",&year,&month,&day);N=year-birthY;if(month<birthM)N--;else if(month==birthM)if(...

黎川县13796138688: 用C语言函数输入某年某月某日,判断这一天是这一年的第几天? -
裘阎甘乐: |#include <stdio.h> #include <stdlib.h>static int daytable[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} };/* Get the days from year month day */ void get_day ( int year, int *dayofyear, int ...

黎川县13796138688: C语言编程:输入某年某月某日判断这一天是一年的第几天的程序是是什么? -
裘阎甘乐: #include <stdio.h>//返回指定年月日是对应年度的第几天 int getDays(int month,int day); int isRunnian(int year);int main(int argc,char* argv[]) { int year=0; int month=0; int day=0;printf("请输入年月日格式示例20140101\n"); scanf("%4d%2d...

黎川县13796138688: C语言编程:输入某年某月某日,判断这一天是这一年的第几天? -
裘阎甘乐: 可以使用数组,并且使用数组代码更简洁一些,参考代码如下: #include int main() { int i, days = 0; int year, month, day; int day_tab[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; printf("输入年、月、日,用空格隔开:"); scanf("%...

黎川县13796138688: 用C语言求任意给出一个年月日是这一年的那一天 -
裘阎甘乐: 可用YMD_2_JD()函数,参数年Y,月M,日D, 返回第几天. 例如: #include <stdio.h> int YMD_2_JD(int Y, int M, int D){ const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int JD,i; JD=D; for (i=0;i<M;i++) JD+=MonthDay[i]; if (((...

黎川县13796138688: 编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天. -
裘阎甘乐: 已经修改过了:#include "stdio.h" main() { int day,month,year,sum,leap; printf("please input year,month,day(like 2000 10 01):"); scanf("%d%d%d",&year,&month,&day); if( (month>12||day>31)||/*the day (month>12 or day>31) is not exist!*/ ...

黎川县13796138688: C语言中输入年月日,判断这一天是一年的第几天…… -
裘阎甘乐: 不能根据当月天数进行累计,只能根据上个月天数累加,因此可从当月开始减1,计算上月天数,再减1计算上上个月天数,一直减到0为止.#include<iostream> using namespace std; int main() { int y, m, d, x, i; cout << "请输入年,月,日" <<...

黎川县13796138688: c语言题 输入某年几月几日,判断这是这一年的第几天 -
裘阎甘乐: #include<stdio.h> int main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/ {case 1:sum=0;break;case 2:sum=31;break; case ...

黎川县13796138688: C语言 输入年月日 输出是这一年的第几天 -
裘阎甘乐: 如图,第一个错误在输入年月日时发生 应改为如下 明显计算结果还是错误的.我决定帮你彻底改正此程序.(等会追答)

黎川县13796138688: 求c语音代码 1 编程实现输入某年某月某日,判断这一天是这一年的第几天.提示:以5月1日为例,应该 -
裘阎甘乐: main() { int y,m,d,mm=0,t=0,s=0; printf("请输入年月日"\n"); scanf("%d%d%d",&y,&m,&d); if((y%4==0)&&(y%100!=0)||(y%400==0)) t=1; switch(m-1) {case 11:mm+=30; case 10:mm+=31; case 9:mm+=30; case 8:mm+=31; case 7:mm+=31;...

黎川县13796138688: C语言 输入年月日:知道它在一年中是哪一天.求每步的详细步骤(有代码) -
裘阎甘乐: #include void main() { int a[12]={0,31,28,31,30,31,30,31,31,30,31,30}; //1~11月每月天数数组 int year,month,date,tot=0; scanf("%d%d%d",&year,&month,&date); //输入年月日 for(int i=0;i2)) //判断是否闰年和是否大于2月,如果是则加1天(因为2月29天了,前面数组里的是28天少加了一天) { tot++; } tot=tot+date; //加日的天数 printf("\n%d\n",tot); //打印出所在天数位置 }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网