タイトル説明:時間クラスを定義します。分と秒は2つのプライベートメンバーデータです。開始時刻と終了時刻(開始時刻が終了時刻より前)を入力し、オペレーターのオーバーロード(マイナス記号)を使用して、これらの2つの時刻の間の秒数を計算します。注:これら2つの時間は同じ時間内にあり、60分、60秒の時分割が使用されます(00:00〜59:59)。
入力形式:テスト入力には複数のテストケースが含まれ、各テストケースは1行を占めます。各テストケースには4つの数値が含まれ、各数値はスペースで区切られています。各数値は2桁で構成され、最初の数値と2番目の数値は分と秒での開始時間を表し、3番目の数値は数値と4番目の数値は、終了時間をそれぞれ分と秒で表します。テストケースの読み込みが00 00 00 00の場合、入力は終了し、対応する結果は出力されません。
出力フォーマット:テストケースごとに1行を出力します。2つの間の秒数を示す数値を出力するだけです。
入力例:
12 11 12 58
00 13 16 00
09 07 23 59
00 00 00 00
出力例:
47
947
892
#include <iostream>
using namespace std;
class Time {
private:
int minute;
int second;
public:
void set(int m, int s) {
minute = m;
second=s;
}
friend int operator-(Time, Time);
};
int operator-(Time t2, Time t1) {
return (t2.minute - t1.minute) * 60 + t2.second - t1.second;
}
int main() {
int a, b, c, d;
Time t1, t2;
cin >> a >> b >> c >> d;
do {
t1.set(a, b);
t2.set(c, d);
cout << (t2 - t1) << endl;
cin >> a >> b >> c >> d;
} while (!(a == 0 && b == 0 && c == 0 && d == 0));
}