将秒转换为天、小时、分钟、秒格式 (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;
它产生了正确的结果。
但我想知道day
、hr
、min
、sec
是否有更好的陈述?
【问题讨论】:
【参考方案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++)的主要内容,如果未能解决你的问题,请参考以下文章