當前位置:首頁 » 編程語言 » 用c語言輸入年月日算第幾天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用c語言輸入年月日算第幾天

發布時間: 2023-07-08 08:44:07

㈠ 編寫一個c語言程序,輸入一個年月日,輸出這個日期是這一年的第幾天。(考慮閏年)

請分別輸入年月日三個數值,計算出這是這一年的第幾天?
(提示:要考慮閏年和2月的情況)
*/


#include <stdio.h>


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)//判斷每個月的日期是否輸入正確;

sum=i+day;

printf("%d年%d月%d日是%d年的第%d天 !",year,month,day,year,sum);


}

㈡ 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語言編程:給定一個日期(年/月/日)計算該日期是所在年的第幾天。

//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
#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 getDaysByMonth(int m,int d,char flag){

int c;

if(flag=='r'){//閏年

if(m==2){//2月是29天

return (31+d);

}else if(m>2){

c=0;

m=m-1;

for(;m>0;m--){

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){

c+=31;

}else if(m==2){

c+=29;

}else{

c+=30;

}}

return c+d;

}else{

return d;

}

}else{//平年

if(m==2){//2月是28天

return (31+d);

}else if(m>2){

c=0;

m=m-1;

for(;m>0;m--){

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){

c+=31;

}else if(m==2){

c+=28;

}else{

c+=30;

}}

return c+d;

}else{

return d;

}}}

void main(){

int y,m,d,count=1;

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) || ((m==4 || m==6 || m==9 || m==11)&& d>30)){

printf("請輸入年月日(例如2017-01-01):");

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

//先判斷是否為閏年

if((y%4==0 && y%100!=0)||(y%400==0)){//閏年

count=getDaysByMonth(m,d,'r');

}else{//平年

count=getDaysByMonth(m,d,'n');}

printf("%d-%02d-%02d是今年的第%d天 ",y,m,d,count);

putchar(' ');

}

網路-運算符優先順序