c語(yǔ)言年月日函數(shù) c語(yǔ)言年月日轉(zhuǎn)化為天數(shù)

用C語(yǔ)言函數(shù)編寫(xiě)求年月日的程序。我想知道我這個(gè)程序哪里錯(cuò)了,語(yǔ)法沒(méi)有錯(cuò),但是答案不對(duì)。

你的這段代碼有問(wèn)題,for(i=1;im;i++)

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元米東做網(wǎng)站,已為上家服務(wù),為米東各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108

{m=month(m,y);

sum=sum+m;}你這樣寫(xiě),就是將月份重復(fù)的加了,如果是三月份,你將會(huì)發(fā)現(xiàn)你加了好多次,自然就會(huì)出現(xiàn)800多天了,下面我將代碼改進(jìn),答案也是對(duì)的。

#include stdio.h

#include math.h

int year(int year);

int month(int month,int year);

void main()

{

int y,m,d,sum,i,n;

printf("請(qǐng)輸入年月日\(chéng)n");

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

y=year(y);

sum=0;

n=0;//定義一個(gè)n,用于每個(gè)月份天數(shù)相加

for(i=1;im;i++)

{

n=month(m,y);//將你的m替換為n,結(jié)果就對(duì)了

sum=sum+n;

}

sum=sum+d;

printf("是第%d天",sum);

}

int year(int year)

{

if( (year%4==0 year%100!=0) || (year%400==0) )?

return (366);??

else return (365);

}

int month(int month,int year)

{

switch(month)

{

case 1:???

case 3:

case 5:?

case 7:

case 8:

case 10:

case 12:

return (31);

break;

case 2:

{

if (year==366)

return(29);

else return(28);

break;

}

default: return(30);

break;

}

}

C語(yǔ)言中有沒(méi)有能顯示系統(tǒng)日期和時(shí)間的函數(shù)?

C語(yǔ)言中讀取系統(tǒng)時(shí)間的函數(shù)為time(),其函數(shù)原型為:

#include time.h

time_t time( time_t * ) ;

time_t就是long,函數(shù)返回從1970年1月1日(MFC是1899年12月31日)0時(shí)0分0秒,到現(xiàn)在的的秒數(shù)。可以調(diào)用ctime()函數(shù)進(jìn)行時(shí)間轉(zhuǎn)換輸出:

char * ctime(const time_t *timer);

將日歷時(shí)間轉(zhuǎn)換成本地時(shí)間,按年月日格式,進(jìn)行輸出,如:

Wed Sep 23 08:43:03 2015

C語(yǔ)言還提供了將秒數(shù)轉(zhuǎn)換成相應(yīng)的時(shí)間結(jié)構(gòu)的函數(shù):

struct tm * gmtime(const time_t *timer); //將日歷時(shí)間轉(zhuǎn)化為世界標(biāo)準(zhǔn)時(shí)間(即格林尼治時(shí)間)

struct tm * localtime(const time_t * timer); //將日歷時(shí)間轉(zhuǎn)化為本地時(shí)間

將通過(guò)time()函數(shù)返回的值,轉(zhuǎn)換成時(shí)間結(jié)構(gòu)struct tm :

struct tm {

int tm_sec; /* 秒 – 取值區(qū)間為[0,59] */

int tm_min; /* 分 - 取值區(qū)間為[0,59] */

int tm_hour; /* 時(shí) - 取值區(qū)間為[0,23] */

int tm_mday; /* 一個(gè)月中的日期 - 取值區(qū)間為[1,31] */

int tm_mon; /* 月份(從一月開(kāi)始,0代表一月) - 取值區(qū)間為[0,11] */

int tm_year; /* 年份,其值等于實(shí)際年份減去1900 */

int tm_wday; /* 星期 – 取值區(qū)間為[0,6],其中0代表星期天,1代表星期一,以此類(lèi)推 */

int tm_yday; /* 從每年的1月1日開(kāi)始的天數(shù) – 取值區(qū)間為[0,365],其中0代表1月1日,1代表1月2日,以此類(lèi)推 */

int tm_isdst; /* 夏令時(shí)標(biāo)識(shí)符,實(shí)行夏令時(shí)的時(shí)候,tm_isdst為正。不實(shí)行夏令時(shí)的進(jìn)候,tm_isdst為0;不了解情況時(shí),tm_isdst()為負(fù)。*/

};

編程者可以根據(jù)程序功能的情況,靈活的進(jìn)行日期的讀取與輸出了。

例如:

#includetime.h

main()

{

time_t timep;

struct tm *p;

time (timep);

p=gmtime(timep);

printf("%d\n",p-tm_sec); /*獲取當(dāng)前秒*/

printf("%d\n",p-tm_min); /*獲取當(dāng)前分*/

printf("%d\n",8+p-tm_hour);/*獲取當(dāng)前時(shí),這里獲取西方的時(shí)間,剛好相差八個(gè)小時(shí)*/

printf("%d\n",p-tm_mday);/*獲取當(dāng)前月份日數(shù),范圍是1-31*/

printf("%d\n",1+p-tm_mon);/*獲取當(dāng)前月份,范圍是0-11,所以要加1*/

printf("%d\n",1900+p-tm_year);/*獲取當(dāng)前年份,從1900開(kāi)始,所以要加1900*/

printf("%d\n",p-tm_yday); /*從今年1月1日算起至今的天數(shù),范圍為0-365*/

}

C語(yǔ)言的時(shí)間函數(shù)

C語(yǔ)言的建時(shí)間函數(shù)是 mktime(),原型在 time.h 里

調(diào)用有點(diǎn)繁。

下面,用我的程序輸入 年月日時(shí)分秒,調(diào)用mktime(), 就得 C語(yǔ)言 可直接使用的 時(shí)間, 存放在 t 里。

例如 輸入年月日時(shí)分秒: 2008 8 16 9 55 25

time_t t; 里 就有了 各種時(shí)間信息,例如星期幾...

#include stdio.h

#include time.h

void main(){

struct tm *target_time;

time_t rawtime, t;

int year,month,mday,hh,mm,ss;

time ( rawtime );

target_time = localtime ( rawtime );

printf("Please enter year month day hour minute second\n");

printf("For example: \n");

printf("2008 8 16 9 55 25\n");

scanf("%d %d %d %d %d %d", year, month, mday, hh,mm,ss);

target_time-tm_year = year - 1900;

target_time-tm_mon= month - 1;

target_time-tm_mday = mday ;

target_time-tm_hour = hh ;

target_time-tm_min = mm ;

target_time-tm_sec = ss ;

//

t = mktime (target_time);

// t is ready to use

printf("%s ",ctime(t));

}

分享名稱(chēng):c語(yǔ)言年月日函數(shù) c語(yǔ)言年月日轉(zhuǎn)化為天數(shù)
本文來(lái)源:http://muchs.cn/article34/dosphpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)