PTA 时间换算

本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。

输入格式:
输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。

输出格式:
输出在一行中给出hh:mm:ss格式的结果时间。

输入样例:

11:59:40
30

输出样例:

 12:00:10

 思路:

1.将所有时间转化成秒数

2.将转换后的秒数加上过去的秒数,得到新的秒数

3.一天有86400秒,如果秒数超过86400,则表明到了第二天,需要用秒数减去86400,得到第二天的秒数

4.将秒数分别转化成小时,分钟,秒,然后输出

5.别忘了将数字宽度设置为2

代码:  

#include<stdio.h>
int main()
{
    int h,m,s;
    scanf("%d:%d:%d:",&h,&m,&s);
    int n;
    scanf("%d",&n);//输入的秒数
    int time;//定义变量表示时间,以秒的形式存储
    time=3600*h+60*m+s+n;//将相加后的时间表示成秒
    if(time>=86400)//一天86400秒,如果相加后秒数大于86400,则表明到了第二天
    {
        time=time-86400;//减去前一天的秒数,表示新一天的秒数
    }
    if(time<86400)//反之则没有超过一天
    {
        time=time;
    }
    int hour,minute,second;//定义小时,分钟,秒,将秒转换成小时数,分钟数,秒数
    hour=time/3600;
    minute=(time-(3600*hour))/60;
    second=(time-3600*hour-60*minute);
    printf("%02d:%02d:%02d",hour,minute,second);
    return 0;
}

 代码:(无注释)

#include<stdio.h>
int main()
{
    int h,m,s;
    scanf("%d:%d:%d:",&h,&m,&s);
    int n;
    scanf("%d",&n);
    int time;
    time=3600*h+60*m+s+n;
    if(time>=86400)
    {
        time=time-86400;
    }
    if(time<86400)
    {
        time=time;
    }
    int hour,minute,second;
    hour=time/3600;
    minute=(time-(3600*hour))/60;
    second=(time-3600*hour-60*minute);
    printf("%02d:%02d:%02d",hour,minute,second);
    return 0;
}

 

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值