巧用JAVA自带的API解决日期类问题

文章目录

    • 题目
    • 代码
    • 优势

题目

特殊日期
巧用JAVA自带的API解决日期类问题_第1张图片

代码

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 是一个非常实用的类。

你可能感兴趣的:(算法综合2023年底,java,开发语言,日期类问题)