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

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

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值