問題及**:
/*
*檔名稱:玩日期時間.cpp
*作 者:白雲飛
*完成日期:2023年12月23日
*版 本 號:v1.0
**問題描述:定義乙個表示時間(包括年、月、日、時、分、秒)的結構體,然後完成下面的功能
(1)輸入乙個時間,將輸入的時間儲存在乙個結構體變數中;
(2)輸出該日在本年中是第幾天(注意閏年問題);
(3)輸出這是這一天中的第幾秒;
(4)輸出這是這一年中的第幾秒;(不要認為這個數荒唐,在計算中需要取隨機數時需要乙個不會重複的「種子數」,這個秒數是常用的。)
(5)求你輸入的時間d天後是哪年哪月哪日,將結果儲存在乙個結構體變數中輸出;(你的萬天日期靠這個功能了)——插講乙個故事。當年老賀由小孩兒過百日,想到自己的萬日在哪天。程式設計計算,結果剛過了十幾天,那個懊惱啊。第二個萬日得再等26年多(現在離第二個萬日靠近了),第三個萬日,誰敢說一定能過上?20歲左右的你,要算清楚了。在第(1)問中輸入你的生日及時辰,d值取為10000,可以算出你的萬日,大概在26歲多。
(6)求你輸入的時間s秒後是何日何時,將結果儲存在乙個結構體變數中輸出;
(7)用結構體變數給定兩個時間,求相差多少天?相差多少秒?
*/#include #include using namespace std;
struct time
;int daysofmonth(int n,int y)//返回y年m月的天數
else
return days;
}int dayofyear(time &t)//這天是這一年的第幾天
//天數不夠一整年後,再考慮月,因為從1月1日開始,不用擔心nt.year再加1年
while(d1>daysofmonth(t1.month,t1.year)) //天數還夠乙個整月
//剩全天數加到日上
t1.day+=d1;
return t1;
}int aftersecond(time &t)
; date date ; //目標時間
cout<
int s; //經過的秒數
cin>>s;
date.hour=s/3600; //計算目標時間
date.minute=(s-date.hour*3600)/60;
date.second=s-date.hour*3600-date.minute*60+t.second;
date.hour+=t.hour;
date.minute+=t.minute;
cout
else s=days2-days1;
cout<
days1+=s;
days1-=days2;
cout>t.month>>t.day>>t.hour>>t.minute>>t.second;
cout
nt=afterdays(t,d);
cout<
cout>t1.month>>t1.day>>t1.hour>>t1.minute>>t1.second;
cout>t2.month>>t2.day>>t2.hour>>t2.minute>>t2.second;
d_date(t1,t2);
return 0;
}
執行結果:
學習心得:
寫到第五個問題就沒思路了,而且覺的好麻煩,參考了老師的**,覺得自己的**太繁瑣了,看來還是要多練習,精煉語言,提高效率。
第十七周 專案五 玩日期時間
問題及 檔名稱 project4.cpp 作 者 李楠 完成日期 2014年12月19日 版 本 號 v1.0 問題描述 定義乙個表示時間 包括年 月 日 時 分 秒 的結構體,然後完成下面的功能。要實現的功能是 1 輸入乙個時間 注意各部分資料的取值範圍 將輸入的時間儲存在乙個結構體變數中 2 輸...
第十七周專案1
檔名稱 test.cpp 完成日期 2014年12月21日 版本號 v1.0 問題描述 閱讀下面的程式,寫出期望中的執行結果。上機執行對照,並用單步執行的方法再次體會,完全掌握用指標和引用作為形式引數的用法。輸入描述 略 程式輸出 略 include using namespace std void...
第十七周總結
周工作總結及計畫表 部 門 理工大學 姓 名 冉濤 入 職 時 間 2015.7.5 本週已完成工作內容及總結 1 基本完成課程設計要求的三道題目,但還有一些小地方沒有做好,主要是在一些異常處理方面,主要是從控制台輸入時的型別轉換異常,以及gui介面的輸入為空的異常和型別轉換異常。2 課程設計的第四...