如何从23:7:42到23:07:42修复时间表达

时间:2014-10-28 11:44:44

标签: c++ time printing styles

我应该成为string吗?还是有一种简单的方法可以使用int

class TimeFixer {
private:
    int seconds=0;
    int minutes=0;
    int hours=0;


public:
    TimeFixer() {
        cout << "Enter hours,minutes,seconds: " ;
        cin >> hours;
        cin >> minutes;
        cin >> seconds;
    }
    void fixTime() {
        while (seconds >= 60) {
            seconds -= 60;
            minutes++;
        }
        while (minutes >= 60) {
            minutes -= 60;
            hours++;
        }
        while (hours >= 24) {
            hours -= 24;
        }
    }
    void displayTime() {
        cout << hours << ":" << minutes << ":" << seconds << endl;
    }
};
int main()
{
    int value = 0;
    cout << "Enter value: " ;
    cin >> value;
    TimeFixer *fix1;
    fix1 = new TimeFixer[value]();

    for (int i = 0 ; i < value ; i++) {
        fix1[i].fixTime();
        fix1[i].displayTime();
    }
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您可以使用setfill()和setw()函数按照Niall建议的要求显示数据。

即。您可以使用以下方式显示时间。

void displayTime() {
   cout << setfill ('0') << setw (2)<< hours << ":"  << setw (2)<< minutes << ":" << setw (2)<< seconds << endl ;
}

例如视图:http://codepad.org/NNL930Im