面试篇: 编写程序算出某一天是这一年的第几天,不可以使用Date类
思考: 分为两种情况Java8之前使用Calendar, 而在Java8出现了则使用LocalDate类
1.8版本之前
代码语言:javascript复制 /**
* 编写程序算出某一天是这一年的第几天
* @param args
*/
public static void main(String[] args) {
// 1、输入年、月、日,因为月份从0开始,则输入需要减一
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
int month = scanner.nextInt() - 1;
int day = scanner.nextInt();
// 2、输入月份于第一年想对比
Calendar calendar= Calendar.getInstance();
calendar.set(year, Calendar.JANUARY, 1);
long time1=calendar.getTimeInMillis()/1000/60/60/24;
calendar.set(year, month, day );
long time2=calendar.getTimeInMillis()/1000/60/60/24;
// 3、计算天数
System.out.println(time2-time1 1);
}
/**
* 2020 2023
* 3 3
* 1 1
* 61 60
*/
1.8版本
代码语言:javascript复制 /**
* 编写程序算出某一天是这一年的第几天
* @param args
*/
public static void main(String[] args) {
// 1、输入年、月、日,因为月份从0开始,则输入需要减一
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
int month = scanner.nextInt() - 1;
int day = scanner.nextInt();
// 2、输入月份于第一年想对比
LocalDate localDate = LocalDate.of(year, month, day);
int days = localDate.getDayOfYear();
System.out.println(days);
}
/**
* 2020 2023
* 3 3
* 1 1
* 61 60
*/
总结:
Java8的新特性,提供了LocalDate和LocalDateTime API接口,更好的处理日期相关问题。