将秒转换为天、小时、分钟、秒格式 (C++)

Posted

技术标签:

【中文标题】将秒转换为天、小时、分钟、秒格式 (C++)【英文标题】:Converting seconds into days, hours, minutes, seconds format (C++) 【发布时间】:2016-12-24 16:15:31 【问题描述】:

我正在做以下编程练习:

编写一个程序,要求用户以整数形式输入秒数 值(使用类型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 是否有更好的陈述?

【问题讨论】:

【参考方案1】:

我会做以下事情。我认为它更清晰:

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;

【讨论】:

以上是关于将秒转换为天、小时、分钟、秒格式 (C++)的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中将秒转换为天、小时、分钟和秒 [关闭]

如何将秒转换为小时、分钟和秒?

PHP——秒转换为天 | 小时 | 分钟

将秒值转换为小时分钟秒?

将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是啥?

怎样将秒数转换成 小时:分钟的格式