Преобразовать юлианскую дату (не как двойную, а дату) в григорианскую дату
У меня есть юлианская дата: 1104-08-16, как мне преобразовать ее в григорианскую дату в C#?
Я нашел следующие ссылки... ссылка ссылка. Но все они используют юлианское значение даты как число с плавающей запятой / десятичное число.
В моём случае юлиан это не поплавок, это фактическая дата.
Любая помощь будет оценена.
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();
}
}
}