主题:[讨论]如何把例如8:30:00格式的时间,减去一个秒数,通过计算,最后还按那个格式输出时间,求帮助
心中的航
[专家分:0] 发布于 2012-09-15 23:10:00
如何把例如8:30:00格式的时间,减去一个秒数,通过计算,最后还按那个格式输出时间,求帮助
回复列表 (共1个回复)
沙发
eastcowboy [专家分:25370] 发布于 2012-09-16 02:22:00
格式是固定的,还是不太固定?如果格式固定为“小时:分:秒”这样子的话,还是比较容易做的。
首先用scanf来获取输入。像这样:
[quote]int hour, minute, second;
if (scanf("%d:%d:%d", &hour, &minute, &second) != 3)
{
printf("输入错误!\n");
return -1;
}
if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59)
{
printf("输入错误!\n");
return -1;
}[/quote]
再然后就是减去1秒。注意如果秒数不够,就要减分钟。如果分钟数不够,就要减小时。
[quote]--second;
if (second == -1)
{
second = 59;
--minute;
if (minute == -1)
{
minute = 59;
--hour;
if (hour == -1)
{
hour = 23;
}
}
}[/quote]
最后输出。
[quote]printf("%d:%d:%d\n", hour, minute, second);[/quote]
我来回复