【问题标题】:I want to check whether one week is over with jodatime我想用jodatime检查一周是否结束
【发布时间】:2019-09-04 18:39:00
【问题描述】:

我试着用from.isBefore(to)检查一周是否结束。 from 是 LocalDate(例如今天),to 是 from.plusDays(6),所以一周。现在的问题是它总是正确的。我该如何修复toDate,fromDate 只是在计数,然后在 if 条件下执行某些操作?

LocalDate from = LocalDate.now();

LocalDate to = from.withPeriodAdded(Period.days(6), 1);

if(from.isBefore(to)) {
   //do something;
}....

【问题讨论】:

  • 我认为您需要指定该周的开始时间。然后将to 与今天进行比较。
  • 这个问题不清楚;投票结束。问今天是否在一周内是愚蠢的,显然今天总是在一周内。重写以准确解释您想要的内容。您想知道今天是否包含在特定日期范围内吗?这已经被报道过很多次了,所以在发布之前搜索一下。
  • 仅供参考,Joda-Time 项目现在位于maintenance mode,建议迁移到java.time 类。见Tutorial by Oracle。
  • 仅供参考,java.util.Date、java.util.Calendar 和 java.text.SimpleDateFormat 等麻烦的日期时间类现在已被 java.time 类所取代。大多数 java.time 功能在 ThreeTen-Backport 项目中被反向移植到 Java 6 和 Java 7。进一步适用于ThreeTenABP 中的早期 Android (How to use ThreeTenABP…。
  • 欢迎来到 Stack Overflow。本周显然还没有结束,所以我认为这不是你的意思。我正在努力理解你的意思。为了清楚起见,也许你想举一个一周结束的例子和另一个例子什么时候结束?由于不清楚,我已投票关闭,并期待在您澄清后撤回我的关闭投票。

标签: java android date jodatime


【解决方案1】:

如果您有from,并且您通过在from 上加上6 天来计算to,那么from 将总是 在 to 之前(并且from.isBefore(to) 将始终返回@ 987654326@)。您需要明确检查两个日期之间的差异是否为 7 天。

看看静态的daysBetween(ReadableInstant start, ReadableInstant end)方法。

【讨论】:

    【解决方案2】:

    好的,我解决了。 我将当前的 LocalDate 写在我的日常文件中。 然后我从文件中读取带有 index.Of 的字符串并将其解析为 LocalDate。我从 CurrentDate 添加到此日期 6 天和计数器。 也许这不是最好的解决方案,但它确实有效......

        //In my Async-Class where the Files get written
              LocalDate currentDate = LocalDate.now();
              outputStream.write(currentDate.toString().getBytes());
    
    
     //In my Main-clasS
        final LocalDate currentDate = LocalDate.now(); //Current Date
        final int daysbetween = 6; //days between current date and date of file
        final int index = openfilewed().indexOf("2", 30); //Date from file
        final LocalDate[] filedate = new LocalDate[1];
        final LocalDate[] reach = new LocalDate[1];
    
         filedate[0] = LocalDate.parse(openfilemon().substring(index));
         reach[0] = filedate[0].plusDays(daysbetween);
               if (currentDate.isBefore(reach[0])){
                  //do something
               }
    

    【讨论】:

      猜你喜欢
      • 2017-11-03
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多