Java中的日期类
这几天开始刷真题了,and快比赛了,可能没时间写博客了,只有碰见新的知识点会出。
LocalDate
- 导入:
import java.tine.*; - 创建日期:
LocalDate date = LocalDate.of(2026,4,8)可以自动校验合法性 - 遍历日期:
java
LocalDate begin = LocalDate.of(1900,1,1);
LocalDate end = LocalDate.of(9999,12,30);
for(LocalDate d = bgein;!d.isAfter(end);d = d.pulsDays(1))
{循环内的代码......}
- 提取日期:
此处的data是日期的变量名
int year = date.getYear();
int month = date.getMonthValue();//1~12
int day = date.getDayOfMonth();//1~31
int week = date.getDayOfWeek();//Monday = 1,Sunday = 7 - 日期计算
date.plusDays(x):加x天
date.minusMonths(x):减x月
类似的还有很多不一一列举...... - 日期比较
date1.isBefore(date2);
date1.isEquals(date2);
data1.isAfter(date2);
例题(FROM 蓝桥杯23年Java省赛A组第一题)

代码实现
java
import java.util.*;
import java.time.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
LocalDate begin = LocalDate.of(1900,1,1);
LocalDate end = LocalDate.of(9999,12,31);
long ans = 0;
for(LocalDate d = begin;!d.isAfter(end);d = d.plusDays(1)){
if(ifTrue(d))
ans ++;
}
System.out.print(ans);
input.close();
}
static boolean ifTrue(LocalDate l){
int year = l.getYear();
int month = l.getMonthValue();
int day = l.getDayOfMonth();
if(digSum(year) == digSum(month) + digSum(day))
return true;
return false;
}
static int digSum(int n){
int sum = 0;
while(n>0){
sum += n%10;
n /= 10;
}
return sum;
}
}