Примирить юлианский номер дня с днем ​​недели - PullRequest
0 голосов
/ 23 мая 2019

Я работаю с системой времени, которая хранит даты в виде юлианских чисел.Проблема в том, что, поскольку юлианский день начинается в полдень, каждый григорианский день связан с двумя разными юлианскими днями.

Например, предположим, что пользователь находится в Нью-Йорке, который является UTC-5, тогда это означает, чточто любое время до 7 утра - один юлианский день, а любое время после 7 утра - следующий юлианский день.

Итак, я предполагаю, что это означает, что если я хочу знать день недели, то у меня естьпринять время во внимание.Другими словами, в настоящее время моя функция дня недели выглядит следующим образом:

unsigned int dow = iJulianDayNumber % 7;

, где понедельник будет нулевым.Тем не менее, у меня возникают некоторые проблемы с получением правильных результатов, поэтому я думаю, что мне нужно учитывать и время, например:

unsigned int getDayOfWeek( unsigned int iJulianDayNumber, unsigned int iHour_UTC ){
    return ( iJulianDayNumber - ( iHour_UTC < 12 ? 1 : 0 )) % 7;
}

Это правильно?

...