2 时间转换2
作者: Turbo时间限制: 1S章节: 分支结构
问题描述 :
给定一个t,将t秒转化为DD days HH:MM:SS的形式,表示DD天HH小时MM分钟SS秒。
HH,MM,SS均是两位数,如果小于10用0补到两位。
如果大于等于2天,则输出DD days HH:MM:SS,比如 2 days 01:05:12
如果大于等于1天并小于2天,则输出 1 day HH:MM:SS,比如 1 day 01:05:12
如果大于等于1小时并小于1天,则只输出HH:MM:SS,比如 01:05:12
如果大于等于1分钟并小于1小时,则只输出MM:SS,比如 01:00
如果大于等于10秒并小于1分钟,则只输出SS,比如 10
如果小于10秒,则只输出一位,表示秒数,比如 9
输入说明 :
输入一个数t,表示时间的秒数。
0<=t<1002460*60。
输出说明 :
输出格式形如:
86 days 00:02:12
表示86天0小时2分12秒。
其中“days”前后各有一个空格,行尾没空格。
详细描述见上。
输入范例 :
8003045
输出范例 :
92 days 15:04:05
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
int main()
{
int t;
cin >> t;
string str1 = " days ", str2 = " day ";
int DD, HH, MM, SS;
int d = 24 * 60 * 60, h = 60 * 60, m = 60;
DD = t / d;
t -= DD*d;
HH = t / h;
t -= HH*h;
MM = t / m;
t -= MM*m;
SS = t;
if (DD >= 2)
{
cout << DD << str1;
printf("%02d:%02d:%02d
", HH, MM, SS);
}
else if (DD == 1)
{
cout << DD << str2;
printf("%02d:%02d:%02d
", HH, MM, SS);
}
else//DD==0
{
if (HH >= 1)
{
printf("%02d:%02d:%02d
", HH, MM, SS);
}
else//HH==0
{
if (MM >= 1)
{
printf("%02d:%02d
", MM, SS);
}
else//MM==0
{
cout << SS << endl;
}
}
}
return 0;
}