时间显示
题目描述
小蓝要和朋友合作开发一个时间显示的网站。
在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970年 1月 1 日 00:00:00到当前时刻经过的毫秒数。
现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
输入描述
输入一行包含一个整数,表示时间。
输出描述
输出时分秒表示的当前时间,格式形如
HH:MM:SS
,其中HH
表示时,值为 0 到 23,MM
表示分,值为 0 到 59,SS
表示秒,值为 0 到 59。时、分、秒 不足两位时补前导 0。
输入输出样例
示例 1
输入
46800999
输出
13:00:00
示例 2
输入
1618708103123
输出
01:08:23
思路:
这道题输入的数据比较大,要定义成 long long类型的。首先要知道 1秒等于1000毫秒。
要先把毫秒转化成秒,然后根据秒和时、分的换算关系来转化,最后输出的时候不要忘记输出前导 0
代码:
#include<stdio.h>
int main()
{
int h,m,s;
long long n;
scanf("%lld",&n);
n=n/1000; //毫秒转化为秒
n=n%(24*60*60); //将大于一天的时间除去
//计算时分秒
h=n/3600;
m=(n%3600)/60;
s=(n%3600)%60;
printf("%02d:%02d:%02d\n",h,m,s);
return 0;
}