- 締切済み
c言語 日付の差の計算
現在の日付と未来の日付を入力すると、現在の日付から未来の日付まで何日あるか計算して表示するプログラムを作成せよ。 作成するプログラムの日付の表現は structure st_date { int year; Int month; Int day; }; また、mktime()などの標準ライブラリの時刻、日付関数を使用してはならない。 五時間くらい格闘してますが、正直何が何だかわかりません(ー ー;) これのプログラム、また、考え方を教えて頂きたいです(T ^ T)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mnakauye
- ベストアンサー率60% (105/174)
こんにちは。 計算が面倒なのはうるう年の計算ですね。 現在の日付 A年B月C日 未来の日付 D年E月F日 とえすれば、 現在の年は、あと何日残っているか。(正月はじめから何日あるか・・・サブルーチンを作る) 未来の年は、正月はじめから何日あるか、(D年がうるう年か否かも必要)の部分と、 A年からD年までに、何回うるう年があるか n回であれば、365を差の年数かけたものにnを足せば間の日数はでる。 以上を正確に計算すれば良いだけです。 うるう年は、 グレゴリオ暦の閏年は次のようにすると正しく判定できる。(ウイキペディア参照) ( year % 4 ) == 0 && ( year % 100 ) != 0 || ( year % 400 ) == 0 (C言語など) year Mod 4 = 0 And year Mod 100 <> 0 Or year Mod 400 = 0 (Visual Basic など) ですから 正月はじめから何日あるかのサブルーチンと うるう年か否かのサブルーチンを作れば、何度かそれも利用できますね。 がんばってください。