我不得不为真正“只是一天”的数据集使用DateTime值而感到非常荒唐。生日是最常见的例子,但这总是在业务应用程序中出现。
我已经习惯于将“仅日期”记录的“时间”部分设置为“中午”(这避免了无论时区如何更改日期)。这似乎是一种hack,我将永远从初级开发人员那里找到解决此问题的错误。
时间总是相对于固定点的。4PM是子午线或正午后4个小时。太阳的最高传播点是可观察到的,它使我们能够建立坐标系。自1970年1月1日起,中午(安特子午线)前3个小时,中午后2小时(1441899402938毫秒)。对于在笛卡尔世界中成长的人们来说,这是第二自然。
但是我们的日历早于笛卡尔。我的论点是,可以更恰当地将其视为应用了模函数的枚举。星期一跟随星期日,依此类推,直到周日跟随星期六。没有正负,它是模数或绝对值。
同样,重复多年。每隔365天(或大约365天)对我来说有几天特别的日子:生日,周年纪念日,孩子们的生日等。业务调度应用程序每隔7天,每月的第一个星期二等等都有大量的会议示例。我们可以将其映射到浮点数,实际上将其映射到所述浮点数可以解决很多旧方法确实很难解决的问题,但这并不意味着它是唯一的方法。
意识到并理解使用DateTimes存储日期的“圆角方孔”性质使您成为更好的程序员。
在定义Date类时,是否有明确打算用作计划应用程序的应用程序中有值,还是“将所有时间设置为中午”是最佳方法?使用DateTime并将Time组件设置为Noon可能会有什么问题?这样的方法可以解决时区偏移吗?我使用过MomentJS,但我认为那是更好的Date类。