- 320 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 07:17:32 ]
- >>319
#include <iostream> using namespace std; int passMinutes(const int start, const int end) { return end - start; } int main() { const int MIN_INADAY = 24*60; int h1, m1, h2, m2; cout << "開始時間(0-23):"; cin >> h1; cout << "開始分(0-59):"; cin >> m1; cout << "終了時間(0-23):"; cin >> h2; cout << "終了時間(0-59):"; cin >> m2; // 入力は省略。h1:m2 > h2:m2 の場合、h2:m2は翌日の時間だと判断する // endは27:00等の入力も受け付けるが、startは、00:00〜23:59の範囲に丸められる int start = h1*60+m1; int end = h2*60+m2; if(start < 0) { start = 0; h1 = 0; m1 = 0; } else if(start >= MIN_INADAY) { start = MIN_INADAY - 1; h1 = 23; m1 = 59; } int tm = (start <= end) ? passMinutes(start, end) : passMinutes(start, MIN_INADAY) + passMinutes(0, end); cout << h1 << "時" << m1 << "分から" << h2 << "時" << m2 << "分までの時間" << endl; cout << (tm / 60) << "時間" << (tm % 60) << "分です" << endl; return 0; }
|

|