点击题目连接
题目描述
小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 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
解题思路
-
输入处理:读取输入的毫秒数。
-
转换为秒数:将毫秒数转换为秒数,通过除以 1000 实现。
-
计算时分秒:
-
秒:对总秒数取模 60 得到秒数。
-
分:总秒数除以 60 后再取模 60 得到分钟数。
-
时:总秒数除以 3600 得到小时数,并且需要对 24 取模以确保小时数在 0-23 范围内。
-
-
格式化输出:按照 HH:MM:SS 格式输出,确保每个部分都是两位数,不足两位补前导 0。
代码实现
#include<bits/stdc++.h>
using namespace std;
void pro()
{
unsigned long long int x;
cin>>x;
x/=1000;
int hour,min,sec;
x=x%(24*60*60);
sec = x%60;
min = x/60%60;
hour = x/3600;
printf("%02d:%02d:%02d\n",hour,min,sec);
}
int main()
{
pro();
return 0;
}
总结
通过将毫秒数转换为秒数,然后分别计算小时、分钟和秒数,并进行格式化输出,可以轻松实现从时间戳到时分秒格式的转换。这种转换在处理时间显示的场景中非常常见,掌握这种方法可以帮助开发者更好地处理时间相关的数据。