将几秒钟转换为几天,小时,分钟,秒格式(C )

Converting seconds into days, hours, minutes, seconds format (C++)

本文关键字:小时 分钟 几天 格式 转换 钟转换 几秒      更新时间:2023-10-16

我正在做以下编程练习:

编写一个程序,要求用户输入秒数作为整数值(使用类型long,或(如果有)long long),然后显示等效的几天,小时,几分钟和秒的时间。使用符号常数代表一天中的小时数,一个小时内的分钟数和数量一分钟内的几秒钟。输出应该看起来像这样:

输入秒数:31600000

31600000秒= 365天,17小时,46分钟40秒

所以我写了这篇文章(在Microsoft Visual Studio 2015中):

#include "stdafx.h"
#include iostream
int main()
{
    using namespace std;
    const int sec_per_min = 60;
    const int min_per_hr = 60;
    const int hr_per_day = 24;
    cout << "Enter numbers of second: ";
    long long seconds;
    cin >> seconds;
    int day, hr, min, sec;
    day = seconds / (sec_per_min * min_per_hr * hr_per_day);
    hr = (seconds - day * hr_per_day * min_per_hr * sec_per_min) / (sec_per_min * min_per_hr);
    sec = seconds % sec_per_min;
    min = (seconds - sec) / sec_per_min % min_per_hr;
    cout << seconds << " seconds = ";
    cout << day << " days, ";
    cout << hr << " hours, ";
    cout << min << " minutes, ";
    cout << sec << " seconds.";
    return 0;
}

它产生了正确的结果。但是我想知道dayhrminsec

是否有更好的陈述

我将完成以下操作。我认为这很清楚:

auto n=seconds;
sec = n % sec_per_min;
n /= sec_per_min;
min = n % min_per_hr;
n /= min_per_hr;
hr = n % hr_per_day;
n /= hr_per_day;
day = n;