将juilan日期(不是双倍,但是日期)转换为格里高利日期

时间:2016-02-18 19:55:54

标签: c# gregorian-calendar julian-date

我有一个朱利安日期:1104-08-16,如何将其转换为c#中的格里高利日期?

我找到了以下链接... link link。但所有这些都使用julian日期值作为float / decimal。

在我的情况下,朱利安不是浮动的,它是实际的日期。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您不了解或不关心时区,可以尝试以下方法。我使用这种方法是因为我无法找到一种解析方法,允许您指定要解释输入的日历。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;

namespace julian2gregorian
{
    class Program
    {
        private static JulianCalendar jcal;
        static void Main(string[] args)
        {
            jcal = new JulianCalendar();
            string jDateString = "1104-08-16";
            char[] delimiterChars = { '-' };
            string[] dateParts = jDateString.Split(delimiterChars);
            int jyear, jmonth, jday;
            bool success = int.TryParse(dateParts[0], out jyear);
            success = int.TryParse(dateParts[1], out jmonth);
            success = int.TryParse(dateParts[2], out jday);
            DateTime myDate = new DateTime(jyear, jmonth, jday, 0, 0, 0, 0, jcal);
            Console.WriteLine("Date converted to Gregorian: {0}", myDate);
            Console.ReadLine();
        }
    }
}