回 帖 发 新 帖 刷新版面

主题:[讨论]如何把例如8:30:00格式的时间,减去一个秒数,通过计算,最后还按那个格式输出时间,求帮助

如何把例如8:30:00格式的时间,减去一个秒数,通过计算,最后还按那个格式输出时间,求帮助

回复列表 (共1个回复)

沙发

格式是固定的,还是不太固定?如果格式固定为“小时:分:秒”这样子的话,还是比较容易做的。
首先用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]

我来回复

您尚未登录,请登录后再回复。点此登录或注册