文章目录
- 题目
- 代码
- 优势
题目
特殊日期
代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
import java.time.LocalDate;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);//在此输入您的代码...LocalDate date = LocalDate.of(1900,1,1);int count=0;while(true){if(date.getYear()==9999&&date.getMonth().getValue()==12&&date.getDayOfMonth()==31) break;int y1 = date.getYear()%10;int y2 = date.getYear()/10%10;int y3 = date.getYear()/100%10;int y4 = date.getYear()/1000;int m1 = date.getMonth().getValue()%10;int m2 = date.getMonth().getValue()/10;int d1 = date.getDayOfMonth()%10;int d2 = date.getDayOfMonth()/10;if((y1+y2+y3+y4)==(m1+m2+d1+d2)) count++;date = date.plusDays(1);}System.out.println(count);scan.close();}
}
优势
这个设置当前的日期为1900.01.01,用自带api,不用考虑闰年还是平年的问题,可以大量减少代码的编写。
LocalDate 是 Java 8 中引入的日期时间 API(java.time包)中的一个类,它用于表示不带时区的日期。LocalDate 主要包含年、月和日,没有时、分、秒等时间信息。以下是关于 LocalDate 类的一些重要信息:
创建 LocalDate 对象
可以通过多种方式创建 LocalDate 对象:
// 获取当前日期
LocalDate today = LocalDate.now();
// 通过年月日创建
LocalDate specificDate = LocalDate.of(2023, 12, 3);
// 通过字符串解析
LocalDate parsedDate = LocalDate.parse(“2023-12-03”);
常用方法
LocalDate 提供了多种方法来获取和操作日期:
1.获取年、月、日:
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();
2.日期运算:
LocalDate futureDate = today.plusDays(7); // 加7天
LocalDate pastDate = today.minusMonths(2); // 减去2个月
3.判断日期先后:
boolean isBefore = today.isBefore(specificDate);
boolean isAfter = today.isAfter(specificDate);
格式化和解析
LocalDate 可以与字符串进行相互转换:
// 格式化为字符串
String formattedDate = today.format(DateTimeFormatter.ofPattern(“yyyy-MM-dd”));
// 从字符串解析
LocalDate parsedDate = LocalDate.parse(“2023-12-03”, DateTimeFormatter.ofPattern(“yyyy-MM-dd”));
不可变性
LocalDate 是不可变的类,一旦创建就不能被修改。对 LocalDate 对象的任何修改操作都会返回一个新的对象。
LocalDate tomorrow = today.plusDays(1);
System.out.println(today); // 输出当前日期
System.out.println(tomorrow); // 输出明天的日期
总结
LocalDate 是 Java 8 引入的强大日期类,用于处理日期操作而不考虑时区。它提供了丰富的方法来获取、操作日期,同时具备不可变性,使得处理日期变得更加方便和安全。在应用程序中,特别是处理本地日期的场景中,LocalDate 是一个非常实用的类。