第五题:《时间显示》
题目大意
解题思路
方法1:
我们可以利用Java自带 date 类,实现秒自动转换为时间,然后通过 SimpleDateFormat 类,改变时间的格式。
但是要注意咱们是东八区,时间要减去8个小时。
方法2:
先把单位毫秒化成秒:
d = d / 1000;
再把日期化成最后一天:
d = d % (24*60*60);
然后分别求,小时,分钟,和秒
int h = (int) (d / 3600);
int m = (int) ((d % 3600)/60);
int s = (int) ((d % 3600)%60);
输入:46800999
输出:13:00:00
输入:1618708103123
输出:01:08:23
完整代码
方法1:
import java.text.SimpleDateFormat;
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long d = scanner.nextLong();
//注意咱们是东八区,要减去8个小时
d = d - 8*60*60*1000;
Date date = new Date(d);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println(sdf.format(date));
}
}
方法2:
import java.util.*;
public class 草稿纸 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long d = scanner.nextLong();
d = d / 1000;
d = d % (24*60*60);
int h = (int) (d / 3600);
int m = (int) ((d % 3600)/60);
int s = (int) ((d % 3600)%60);
String H,M,S;
if (h<10) {
H="0"+h;
}else {
H=h+"";
}
if (m<10) {
M="0"+m;
}else {
M=m+"";
}
if (s<10) {
S="0"+s;
}else {
S=s+"";
}
System.out.println(H+":"+M+":"+S);
}
}