1樓:匿名使用者
//曆法規定,四年一閏,四百年閏,例如2023年是閏年,2023年不閏年,
//公曆年份是整百數的,必須是400的倍數的才是閏年,不是400的倍數的就是平年
//計算兩個日期之間的天數(c++)
//定義變數year1, month1, day1, year2, month2, day2
//取出2個日期中的年 月 日
//如果年相同,月也相同
//return day1- day2
/*問題: 兩個日期(如"2010-04-13"和"1988-10-24"),求它們之間相差的天數
分析: 這是一年看似簡單,實際上卻有點複雜的小問題,首先你要考慮到月大月小的問題,其次你要考慮到閏年的問題
當然,你也要檢測一下,給定的日期格式是否合法,對這個問題的解法,寫出偽**如下
定義變數year1, month1, day1, year2, month2, day2
取出2個日期中的 年 月 日
如果年相同,月也相同:
return | day1 - day2
如果年相同,月不同:
d1 = date1是該年的第幾天
d2 = date2是該年的第幾天
return | d1 - d2
如果年份不同:
d1 = 年份小的日期,離年低還有多少天
d2 = 年份大的日期是這年的第幾天
d3 = 兩個日期之間相差多少個整年,共有多少天
return d1 + d2 + d3
上面的偽**使用者c++實現如下:
*/#include
using namespace std;
//isleap函式判斷乙個年份是否為閏年,方法如下:
bool isleap(int year)
//上面的stringtodate函式用於取出日期中的年月日並判斷日期是否合法
//從字元中最得年月日 規定日期的格式是yyyy-mm-dd
bool stringtodate(string date, int& year, int& month, int& day)
;if(isleap(year))
return year >= 0 && month<=12 && month>0 && day<=day[month] && day>0;
}//dayinyear能根據給定的日期,求出它在該年的第幾天,**如下
int dayinyear(int year, int month, int day)
;if(isleap(year))
day[1] = 29;
for(int i=0; i day2 ? day1 - day2 : day2 - day1;
//如果年相同
}else if(year1 == year2)
else
int d1,d2,d3;
if(isleap(year1))
d1 = 366 - dayinyear(year1,month1, day1); //取得這個日期在該年還於下多少天
else
d1 = 365 - dayinyear(year1,month1, day1);
d2 = dayinyear(year2,month2,day2); //取得在當年中的第幾天
cout<<"d1:"< d3 = 0; for(int year = year1 + 1; year < year2; year++) return d1 + d2 + d3;}} int main() c++是在c語言的基礎上開發的一種物件導向程式設計語言,應用廣泛。c++支援多種程式設計正規化 --物件導向程式設計、泛型程式設計和過程化程式設計。最新正式標準c++於2023年8月18日公布。 其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類:類、封裝、過載等特性! 2樓:魔尊 #include class date void set(int p1,int p2,int p3)int year,month,day; };int a=,*p1,*p2,*p3,i=1,k=0; int main() }friend int numday(date t1,date t2) private: int year,month,day; };void main() 這下子應該可以了,不過按照一般來說呢,這是不行的,不符合實際,當然你要這樣也沒有辦法,呵呵。 3樓:匿名使用者 我這個是用c語言寫的,應該算是更符合你的要求了吧,c++相容c嘛。 也是按實際每個月的天數算的,希望能幫到你。 #include unsigned findday(unsigned y,unsigned m,unsigned d) return day; }void main() printf("兩日期相差%u天\n",s);} c++兩個日期之間間隔的天數? 4樓:匿名使用者 #include #include "stdafx.h" #include #include "stdio.h" #include "stdlib.h" void main() {int beginday,beginmonth,beginyear,sum,leap,endday,endmonth,endyear,i,y=0; cout<<"請輸入要計算開始的具體日期:請輸入開始的年份:"<>beginyear; cout<<"請輸入開始的月份:"; cin>>beginmonth; cout<<"請輸入開始的具體的日:"; cin>>beginday; cout<>endyear; cout<<"請輸入結束的月份:"; cin>>endmonth; cout<<"請輸入結束的具體的日:"; cin>>endday; for(i=beginyear;i2)sum=sum+1; cout<<"從"< 5樓:匿名使用者 #include #include using namespace std; void setday(tm& day,int y,int m,int d) int main() {tm time1,time2; time_t tim1,tim2; int y1,y2,mon1,mon2,day1,day2; cin>>y1>>mon1>>day1; cin>>y2>>mon2>>day2; setday(time1,y1,mon1,day1); setday(time2,y2,mon2,day2); tim1=mktime(&time1); tim2=mktime(&time2); int len=(tim2-tim1)/(24*60*60); cout< 這道c++程式設計題怎麼做?如何利用友元計算兩個日期相差的天數?求大神解答 6樓:上_善_下_流 #include using namespace std; class mydate void mydate::showdate(){cout<<"日期是:"< 我好蛋疼。本來在學js,現在擱著擼c++。算了,當複習啦哈哈。 用c語言編寫計算兩個日期之間的天數 7樓:匿名使用者 #include #include void main() ,t2=; t1.tm_year = 1999-1900; t1.tm_mon = 2-1; t1.tm_mday = 3; t2.tm_year = 2015-1900; t2.tm_mon = 5-1; t2.tm_mday = 4; time_t a1 = mktime(&t1); time_t a2 = mktime(&t2); printf("相差%d天", (a2-a1)/86400); }ps:看不懂了再追問 【c++關於日期的程式設計】 計算兩個日期相差天數的程式設計中,兩個日期年份不同,中間會相差若干個平閏年 8樓:幻形術 這種問題要變通思考,知道時間戮這個東西麼? 類似地,要選乙個原點(0點),比如選 0年1月1日或者2023年1月1日或者2023年1月1日或者其它日期具體看你自己的需求了,選好原點日期後,把你的兩個日期都轉為相對於原點日期開始所經歷的天數,然後兩個天數相減就得出結果了。 首先,計算兩個日期之間的天數。在excel中,兩個日期直接相減就可以得到兩個日期間隔的天數,如下圖 計算兩個日期之間的天數,也可以用隱藏函式datedif函式來完成,公式如下 datedif a2,b2,d datedif 函式知識點介紹 這個函式語法是這樣的 datedif 開始日期,結束日期,第... 根據題意可得如下代專碼 屬 include int main for i 0 i n i for i 0 i n i printf d n ans return 0 c語言如何實現兩向量叉乘 根據叉乘的計算方法可知 因此可直接通過計算三階行列式的方法來計算兩向量的叉乘 include void cp... include int main include int main 哪位高手能幫忙把這個c語言程式的程式框圖畫出來,萬分感謝 10 最討厭這種程式設計風格,讓人看不懂,還不想看 將c語言畫成程式框圖 我的程式是用c語言編的乙個畫圖軟體 首先要先了解流程圖的畫法,掌握基本控制結構 用某種方法實現圓的生...excel怎麼計算兩個日期之間天數和時間計算
c語言向量的運算,用C語言編寫乙個計算兩個向量叉積的程式
C語言,這兩個程式框圖寫成程式,C語言,這兩個程式框圖寫成程式