以下是一个 C++ 程序,用于将输入的秒数转换为 0d 00:00:00
的时间格式,其中:
- d 表示天数。
- hh:mm:ss 表示小时、分钟和秒。
C++ 实现代码
#include <iostream>
#include <iomanip>
std::string formatTime(long long seconds) {
long long days = seconds / (24 * 3600); // 计算天数
seconds %= (24 * 3600); // 剩余秒数
long long hours = seconds / 3600; // 计算小时
seconds %= 3600; // 剩余秒数
long long minutes = seconds / 60; // 计算分钟
seconds %= 60; // 剩余秒数
// 格式化输出为 0d 00:00:00
std::ostringstream oss;
oss << days << "d "
<< std::setw(2) << std::setfill('0') << hours << ":"
<< std::setw(2) << std::setfill('0') << minutes << ":"
<< std::setw(2) << std::setfill('0') << seconds;
return oss.str();
}
int main() {
long long inputSeconds;
std::cout << "请输入秒数:";
std::cin >> inputSeconds;
std::cout << formatTime(inputSeconds) << std::endl;
return 0;
}
示例输入和输出
示例 1
输入:
输入秒数:86461
输出:
1d 00:00:01
示例 2
输入:
输入秒数:123456
输出:
1d 10:17:36
示例 3
输入:
输入秒数:3600
输出:
0d 01:00:00
代码逻辑说明
-
计算天、时、分、秒:
- 使用整除和取余操作分别计算天数、小时、分钟和剩余秒数。
-
格式化输出:
- 使用
std::ostringstream
和std::setw
,确保小时、分钟和秒始终以两位数显示。
- 使用
-
动态输入:
- 支持任意非负整数秒数输入。
-
输出格式:
- 输出严格符合
0d 00:00:00
格式。
- 输出严格符合
这段代码适用于各种输入秒数,可以轻松扩展到更复杂的时间转换场景。