2021蓝桥杯第十二届java试题C组试题F.时间显示

2021蓝桥杯第十二届java试题C组试题F.时间显示,第1张

【问题描述】
小蓝要和朋友合作开发一个时间显示的网站。


在服务器上,朋友已经获取
了当前的时间,用一个整数表示,值为从 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);
	}

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/568455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存