Как вы конвертируете DateTime в JulianDate? - PullRequest
3 голосов
/ 27 апреля 2011

Мне нужно преобразовать DateTime в юлианскую дату в формате YYDDD.Как ты делаешь это?Я видел, что есть класс JulianCalendar в .net, но не могу найти ни одного примера, как сделать преобразование.Я видел несколько ссылок, но ни одна из них не работает.

есть предложения?

ОБНОВЛЕНИЕ Мне дали определенную дату для преобразования в файл csv, и это включает преобразование dateTime в формат,не может измениться, по-видимому, используется в банковском мире.Формат YYDDD. После некоторого поиска в Google это выглядело, как будто это был юлианский календарь.Я могу ошибаться. Так что я совершенно запутался в том, что это за формат.

Ответы [ 2 ]

9 голосов
/ 27 апреля 2011

Похоже, этот формат действительно также , называемый юлианской датой в мире мэйнфреймов ...

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=julian+date+yyddd

var myDate = DateTime.Now;
string.Format("{0:yy}{1:D3}", myDate, myDate.DayOfYear);

РЕДАКТИРОВАТЬ - преобразовать такойвернемся к дате, можно использовать что-то вроде этого:

DateTime FromBizarreMainframeFormat(string julianDate) {
    // TODO add validation logic, plus rules to cope with pre-2000 dates
    var yy = 2000 + int.Parse(julianDate.SubString(0,2));
    var ddd = int.Parse(julianDate.Substring(2));
    return new DateTime(yy, 1, 1).AddDays(ddd);
}
2 голосов
/ 27 апреля 2011

Похоже, вы запрашиваете значение, равное (myDate.Year % 100) * 1000 + myDate.DayOfYear. Это довольно простой расчет.

Если вам нужна строка с начальными нулями, тогда вы можете сделать (myDate.Year % 100).ToString("D2") + myDate.DayOfYear.ToString("D3").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...