这道题很简单,要是会用自带的Date类可以很快做出来,就算不会用也可以很简单的做出来,我这里给出两种方法,我发现不用Date类可以更快
先看题目
第一种不用Date类:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long n=sc.nextLong();
n/=1000;
int day=24*60*60;
n=n%day;
int h=(int) (n/(60*60));
n%=60*60;
int m=(int) (n/60);
n%=60;
String date;
if(h>10) {
date=h+":";
}else {
date="0"+h+":";
}
if(m>10) {
date+=m+":";
}else {
date+="0"+m+":";
}
if(n>10) {
System.out.println(date+n);
}else {
System.out.println(date+"0"+n);
}
}
}
不用Date类虽然费手,但是速度比较快
接下来是用Date类:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long n=sc.nextLong();
n-=8*60*60*1000;
Date date=new Date(n);
System.out.println(new SimpleDateFormat("HH:mm:ss").format(date));
}
}
用Date时要注意时区问题,我们是东8区所已一开始是1900-01-01 8:00:00
所有要减去8个小时的毫秒数
其实有个可以设置时区的,不过我不会用
看下速度