使用std.datetime将日期添加到日期

fwe*_*end 1 d date

为什么不允许在std.datetime中添加日期到日期?您可以添加月份和年份,但不能添加天数.

最近我必须计算复活节星期日的日期,然后我必须通过在最后一天添加一定天数(39,10,7,4)来计算相关假期(阿森松岛,五旬节,三位一体,语料库).

我最终使用dayOfYear:

date.dayOfYear(date.dayOfYear + offset);
Run Code Online (Sandbox Code Playgroud)

这很好,但只是因为我在同一年内.如果我要在50年代增加50天怎么办?

有一种简单的方法可以做到这一点,我忽略了吗?

yaz*_*yaz 5

您可以使用Durationcore.time.导入std.datetime将导入core.time,因此您可以直接使用它,如下所示.

import std.stdio, std.datetime;

void main() {
  auto date = Date(2013, 12, 28);
  writefln("%s + %s = %s", date, 10.days(), date + 10.days());
}
Run Code Online (Sandbox Code Playgroud)

BTW,days()dur!"days"()构造Duration结构的别名.有关更多信息,请查看core.time http://dlang.org/phobos/core_time.html的文档.