使用天数在日历中设置开始和结束日期

Set start and end date in calendar using number of days

我是 Android 的新手。我想使用日历并设置开始和结束日期。问题是,我只知道开始日期(今天的日期),但结束日期是动态的并且基于天数。因此,例如:我有 int= 400 天,结束日期应该是这样的:开始日期 + 400。我该怎么做?

P.S 理想情况下,如果开始日期和结束日期在范围内。

1- 将今天的日期转换为 Unix Time

2- 一天是 86400 秒。将您的变量乘以该变量(即 86400x400)。

3- 将步骤 1 添加到步骤 2。这是您在 Unix 时间中的结束日期。

4- 将 Unix 时间转换为您想要的任何类型。

java.time

考虑使用 java.time,现代 Java 日期和时间 API,作为你的约会工作。

    ZoneId here = ZoneId.of("Europe/Tallinn");
    int numberOfDays = 400;
    
    LocalDate startDate = LocalDate.now(here);
    LocalDate endDate = startDate.plusDays(numberOfDays);
    
    System.out.format("From %s to %s%n", startDate, endDate);

当我运行刚才这个片段时,输出是:

From 2020-09-02 to 2021-10-07

优势

你问的Calendarclass设计很差而且早就过时了。虽然它可以完成这项工作,但使用起来很麻烦,对于典型的应用程序,您需要在 Date 或其他 class 之间进行转换。

java.time 更好用。

问题:java.time 不需要 Android API 26 级吗?

java.time 在新旧 Android 设备上都能很好地工作。它只需要至少 Java 6.

  • 在 Java 8 和更新的 Android 设备上(从 API 级别 26)现代 API 出现 built-in.
  • 在 non-Android Java 6 和 7 中获取 ThreeTen Backport,现代 classes 的 backport(ThreeTen 用于 JSR 310;请参阅底部的链接)。
  • 在较旧的 Android 上使用脱糖或 ThreeTen Backport 的 Android 版本。它叫做 ThreeTenABP。在后一种情况下,请确保使用子包从 org.threeten.bp 导入日期和时间 classes。

链接