点击题目连接

题目描述

小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 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

解题思路

  1. 输入处理:读取输入的毫秒数。

  2. 转换为秒数:将毫秒数转换为秒数,通过除以 1000 实现。

  3. 计算时分秒

    • :对总秒数取模 60 得到秒数。

    • :总秒数除以 60 后再取模 60 得到分钟数。

    • :总秒数除以 3600 得到小时数,并且需要对 24 取模以确保小时数在 0-23 范围内。

  4. 格式化输出:按照 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;
}

总结

通过将毫秒数转换为秒数,然后分别计算小时、分钟和秒数,并进行格式化输出,可以轻松实现从时间戳到时分秒格式的转换。这种转换在处理时间显示的场景中非常常见,掌握这种方法可以帮助开发者更好地处理时间相关的数据。