题目:时间显示
时间限制: 1.0s内存限制: 256.0MB本题总分: 15分
[问题描述]
小蓝要和朋友合作开发-一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从1970年1月1日00:00:00到当前时刻经过的亳秒数。
现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
[输入格式]
输入行包含一个整数,表示时间。
[输出格式]
输出时分秒表示的当前时间,格式形如HH:MM:SS,其中HH表示时,值为0到23, MM表示分,值为0到59, SS 表示秒,值为0到59。时、分、秒不足两位时补前导0。
[样例输入1]
46800999
[样例输出1]
13:00:00
[样例输入2]
1618708103123
[样例输出2]
01:08:23
[评测用例规模与约定]
对于所有评测用例,给定的时间为不超过1018 的正整数。
解题思路:
1. 1秒=1000毫秒
2. 年月日不用显示
3. 毫秒也不需要显示
4. 将毫秒转换成秒
5. 将秒数控制在一天之内
6. 将结果转换为时间格式
#include<stdio.h>
int main()
{
int hour, minute, s, t;
long long int n;//毫秒数
int day = 60 * 60 * 24;//一天的秒数
scanf_s("%lld", &n);
n /= 1000;//1秒=1000毫秒 转换为秒
n %= day;//讲秒控制在一天之内
hour = n /( 60 * 60);//求出小时数
t = n % (60 * 60);//求出小时数后剩下的秒数
minute = t / 60;//求出分钟数
s = t % 60;//求出秒数
printf("%02d:%02d:%02d\n", hour, minute, s);
return 0;
}