我正在使用一个将日期存储为儒略日数字的时间系统。问题在于,由于儒略日是从中午开始的,因此每个公历日都与两个不同的儒略日相关联。
例如,假设用户位于纽约,它是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;
}
这正确吗?