當前位置:首頁 » 編程語言 » 輸入日期算天數c語言

輸入日期算天數c語言

發布時間: 2023-04-21 19:41:16

1. c語言中輸入一個日期計算他是今年的第幾天

輸入年月日三個值,先累加該年之前各個月的每月天數,最後累加日期天數即可獲取結果。

一、演算法設計:

1、輸入年月日三個值;

2、為保證程序健壯性,可以對三個值的合法性進行判斷,只對合法數據進行操作;

3、累加之前各月天數;

4、累加當前日值;

5、輸出結果。

二、注意點:

可以使用數組存儲各個月份的天數,用循環累加。需要注意的是閏年的判斷。對於閏年,2月要多加一天。

三、參考代碼:

#include<stdio.h>
intmain()
{
intmdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};//十二個月的天數。
inty,m,d,r=0,i;
scanf("%d%d%d",&y,&m,&d);
if(y%400==0||(y%4==0&&y%100!=0))//閏年。
mdays[1]=29;//設置閏年二月值。
if(y<0||m<=0||m>12||d<=0||d>mdays[m-1])//輸入非法。
{
printf("輸入年月日不合法 ");//提示並退出。
return-1;
}
for(i=0;i<m-1;i++)//累加之前各個月。
r+=mdays[i];
r+=d;//累加日期值。
printf("%d ",r);//輸出結果。
return0;
}

2. 用c語言編程計算輸入出生日期可計算出到現在存活時間天數

使用time.h,首先使用mktime函數將出生日期換算成time_t,也就是秒數。然後再使用time函數獲取當時時間的秒數,兩者相減,就是相差的秒數,再除以一天的秒數換算成天數就可以了。


全部源碼如下:

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

main()
{
intyear,mon,mday;
time_tt1,t2;
intdays;
structtmtm;

printf("Pleaseinputyear,mon,day:");
scanf("%d,%d,%d",&year,&mon,&mday);
memset(&tm,0,sizeof(tm));
tm.tm_year=year-1900;
tm.tm_mon=mon-1;
tm.tm_mday=mday;
t1=mktime(&tm);
t2=time(NULL);

days=(t2-t1)/(24*3600);
printf("%d ",days);
}

3. 從鍵盤輸入一個年月日,編程求這一天到年底的天數

假設輸入日期格式為:yyyy-mm-dd,如2022-1-1,C語言代碼如下:

#include <stdio.h>

int main() {

int y, m, d, i;

scanf("%d-%d-%d", &y, &m, &d); // 要求輸入日期格式為yyyy-mm-dd

姿漏橋 int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

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

month[2] = 29; // 閏年2月為29天

if (m <= 0 || m > 12) {

printf("月份%d不屬於[1,12],程序退出 ", m);

return -1;

}

int days = month[m] - d; // 距當月月底的天數

if (days < 0) {

printf("%d年%d月最多%d天,程序退出 ", y, m, month[m]);

return -1;

}

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

days += month[i]; // 下月開始距年底的天數

printf("%d ", days);

return 0;

}

運行結果如下:

輸入2022-1-1,2022年為平年搜頌,一年共365天跡猛,所以2022年第一天距年底還有364天

輸出為364,符合題意,望採納~

4. 怎麼用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!!

5. c語言關於計算天數

m[12]=(31,28,31,30,31,30,31,31,30,31,30,31);

這句的寫法是錯的
一、初始化應該在數組定義時
二、括弧應該用{}
修改如下:
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};

具體到其它問題,請LZ自行查閱處理,你的演算法邏輯好麻煩,看的不是很懂

6. c語言編寫程序,輸入某年某月,求該月的天數

#include<iostream.h>
voidmain()
{
intYear,Month,Day;
cout<<"Pleaseenterthecurrentdate(年月以空格分隔):";
cin>>Year>>Month;
while(Month<=0||Month>12)
{
cout<<"輸入時間有誤,請重新輸入:";
cin>>Year>>Month;
}
switch(Month)
{
case4:
case6:
case8:
case9:
case11:
Day=30;
break;
case2:
if(Year%400==0||Year%4==0&&nYear%100!=0)
Day=29;
else
Day=28;
break;
default:Day=31;
}
cout<<"該月天數為:"<<Day<<"天";
}

7. c語言編程:輸入年月日,求出該天是該年的第幾天

#include<stdio.h>

intmain()

{intday,month,year,sum,leap;

printf(" 請輸入年、月、日,格式為:年,月,日(2015,12,10) ");

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==0&&year%100!=0))

{//判斷是不是閏年

leap=1;

}

else

{leap=0;

}

if(leap==1&&month>2)

{//*如果是閏年且月份大於2,總天數應該加一天

sum++;

}

printf("這是這一年的第%d天。",sum);

printf(" ");

}

(7)輸入日期算天數c語言擴展閱讀

使用c語言編程結構tm格式化時間注意事項:

tm結構在C/C++中處理日期和時間相關的操作時,顯得尤為重要。tm結構以C結構的形式保存日期和時間,大多數與時間相關的函數都使用了tm結構。

使用了tm結構和各種與日期和時間相關的函數。在練習使用結構之前,需要對C結構有基本的了解,並懂得如何使用箭頭->運算符來訪問結構成員。

8. 急求!C語言計算天數

#include<stdio.h>
int main()
{
int yyyy,mm,dd,a,b;
scanf("%d/%d/%d",&yyyy,&mm,&dd);
a=31*(mm>1)+28*(mm>2)+31*(mm>3)+30*(mm>4)+31*(mm>5)+30*(mm>6)+31*(mm>7)+31*(mm>8)+30*(mm>9)+31*(mm>10)+30*(mm>11)+dd;
b=((yyyy%4==0)*(yyyy%100!=0)+(yyyy%400==0))*(mm>2);
printf("%d\n",a+b);
return 0;
}

9. 輸入年,月,計算該月的天數 C語言程序

#include"stdio.h"
#include"stdlib.h"
intmain()
{inty,m,days;//存放年、月、天數的變數
printf("請輸入年、月(逗號隔開): ");//輸入提示
scanf("%d,%d",&y,&m);//輸入邊長(輸入時用逗號隔開)
printf("%d%d ",y,m);
switch(m)
{case1:case3:case5:case7:case8:case10:case12:days=31;break;
case4:case6:case9:case11:days=30;break;
case2:{if(y%4==0&&y%100!=0||y%400==0)days=29;//閏年
elsedays=28;
break;
}
default:days=0;//輸入月份不對
}
printf("%d年%d月有%d天 ",y,m,days);
system("pause");
}

10. 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;
}

熱點內容
怎麼給自己手機寫一個腳本 發布:2024-11-01 20:23:41 瀏覽:241
c語言大小寫判斷 發布:2024-11-01 20:21:53 瀏覽:130
php的點餐系統源碼 發布:2024-11-01 20:13:53 瀏覽:714
拜占庭演算法 發布:2024-11-01 20:10:31 瀏覽:357
xcode編譯參數 發布:2024-11-01 20:00:04 瀏覽:665
蘋果5怎麼設置密碼鎖屏 發布:2024-11-01 19:54:55 瀏覽:124
寶塔上傳文件夾 發布:2024-11-01 19:39:50 瀏覽:257
java雲編譯器 發布:2024-11-01 19:34:24 瀏覽:385
免費源碼分享網 發布:2024-11-01 19:29:19 瀏覽:855
硬碟8mb緩存 發布:2024-11-01 19:20:02 瀏覽:192