【问题描述】
小蓝要和朋友合作开发一个时间显示的网站。
在服务器上,朋友已经获取
了当前的时间,用一个整数表示,值为从 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 的正整数。
分析:
注意几个换算单位
1000毫秒=1秒;
我们要对输入的数据将他换算一下,首先一天=24*60*60
我们要算 总秒数%一天 ,因为题目说的是不需要显示年月日,只需要显示时分秒
用余一天剩下来的余数;
剩下来的余数=总秒数%24*60*60
小时=剩下来的余数 /(60*60);
用除以小时剩下的余数算算分钟:
剩下来的余数=剩下来的余数 %(60*60);
分钟=剩下来的余数/60;
剩下来的余数=剩下来的余数 %60;
秒数=剩下来的余数 %60;
然后再分别判断他们是否大于10,大于10不用管 小于10的话要在他们前面+0
import java.util.Scanner;
public class 时间显示 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
Long s=scanner.nextLong();
s=s/1000;
s%=24*60*60;
int hour1=(int)(s/60/60);
s%=60*60;
int hour2=(int)(s/60);
int hour3=(int)(s%60);
String hour="";
String moment="";
String ss="";
if (hour1>10) {
hour=hour1+":";
}else {
hour="0"+hour1+":";
}
if (hour2>10) {
moment=hour2+":";
}else {
moment="0"+hour2+":";
}
if (hour3>10) {
ss=hour3+"";
}else {
ss="0"+hour3;
}
System.out.println(hour+moment+ss);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)