Я работаю с системой времени, которая хранит даты в виде юлианских чисел.Проблема в том, что, поскольку юлианский день начинается в полдень, каждый григорианский день связан с двумя разными юлианскими днями.
Например, предположим, что пользователь находится в Нью-Йорке, который является 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;
}
Это правильно?