【问题标题】:What is the relation between number "41794" and todays date(i.e 04/06/2014)?数字“41794”与今天的日期(即 04/06/2014)之间的关系是什么?
【发布时间】:2014-07-24 15:57:39
【问题描述】:

我正在尝试从网站中提取 ID 41794。但上述数字取决于开始日期(今天的日期)。从网站上查看下面的 sn-p,

'index.cfm?fuseaction=c_availabilityGrid.displayAvailabilityGrid&startDate=41794&timeSpan=ww,2&showBeds=1&showMlos=0&showprice=1'

我很想知道41794 的值是如何从今天的日期获得的,以便我可以将该逻辑放入我的代码中。

java中是否有任何函数可以将输入作为日期并返回上面提到的数字?

在这件事上的任何帮助将不胜感激。

【问题讨论】:

  • 使用不同的日期搜索并检查返回的内容,然后您可以尝试找到比较两者的逻辑
  • 这似乎是一个奇怪的值,也许是某个纪元(如 1900 年 1 月 1 日)以来的 41,794 天?值在一天中是否发生变化,并且是否随时间线性增长?以什么速度?
  • @Elliott - 该值在一天内变化。昨天是 41793,今天是 41794。似乎是自动递增。

标签: java date time


【解决方案1】:

它看起来像是自 1900 年 1 月 1 日以来的天数,可能有一两次闰年。

看看http://www.timeanddate.com/countdown/to?p0=198&year=1900&month=1&day=1&hour=0&min=0&sec=0

Microsoft Excel 使用这样的系统。谷歌“Excel 序列日期”。

【讨论】:

  • 但为什么是不同的时代??.. 为什么是 1900 年而不是 1970 年?
  • @TheLostMind:我认为我们无法回答“为什么”这个问题。谁知道呢。
  • @TheLostMind:另外,Excel 使用这样的日期系统。
  • 这是 Excel 将 =TODAY() 格式化为数字的方式... :P 也许是 .NET 的东西?
  • @NPE - 太棒了!!这实际上是当前日期和 1990 年 1 月 1 日在天数方面的差异。谢谢。
【解决方案2】:

answer by NPE 是正确的。使用modern date-time API*可以确认如下:

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Month;

public class Main {
    public static void main(String[] args) {
        LocalDateTime ref = LocalDate.of(1900, Month.JANUARY, 1).atStartOfDay();
        LocalDateTime result = ref.plus(Duration.ofDays(41794));
        System.out.println(result);
    }
}    

输出:

2014-06-06T00:00

Trail: Date Time 了解有关 modern date-time API* 的更多信息。


* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用 ThreeTen-Backport,它将大部分 java.time 功能向后移植到 Java 6 和 7 . 如果您正在为一个 Android 项目工作并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaringHow to use ThreeTenABP in Android Project

【讨论】:

    猜你喜欢
    • 2014-12-16
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多