7位Julian日期到正常日历日期

时间:2017-11-16 10:16:47

标签: c# .net date calendar julian

如何将7位朱利安日期(2016092)转换为常规日历日期(MM-DD-YYYY)?

我正在考虑取最后三位数并将其转换为常规日期,然后将前四位数作为年份附加,但我必须考虑闰年。

预期输出:04-01-2016

解决问题的当前( SQL )代码是

DECLARE @dt char(7) 
SET @dt = 2016092 

SELECT DATEADD(dd, CAST(RIGHT(@dt, 3) AS int) - 1, CAST(LEFT(@dt, 4) AS datetime))

如何在 C#上实现它?

1 个答案:

答案 0 :(得分:4)

没有任何 Julian Day (日期)格式

https://en.wikipedia.org/wiki/Julian_day

但是一种自定义格式可以从提供的sql重建:

  year * 1000 + days from 1st Jan + 1

所以2016092表示从1月1日开始的year 2016092 - 1 = 911st of Apr

<强>实施

int source = 2016092;
DateTime result = new DateTime(source / 1000, 1, 1).AddDays(source % 1000 - 1);

Console.WriteLine($"{result:MM-dd-yyyy}");

<强>结果:

04-01-2016