Java - 从工作日的数量转换为天数

Jer*_*emy 5 java date-arithmetic

这类似于计算两个日期以外的日期,周末不同但问题不同.

问题是"我在工作日前有一个任务.这是多少天前的事了?"

星期五,3个工作日前是3天前.星期一,3个工作日前是5天前.

我可以通过迭代编写一个非常简单的解决方案.但是,我觉得应该可以将其作为O(1)操作.一个接近但错误的答案是N +(7/5)N.有小费吗?

Bri*_*ham 1

首先将 5 天的偶数转换为 7 天的周,然后如果需要超过周末,则通过添加两天来处理余数。

int MONDAY = 1, TUESDAY = 2, WEDNESDAY = 3, THURSDAY = 4, FRIDAY = 5;
int today = getToday();
int weeks = weekdays / 5;
int extraDays = weekdays % 5;
int days = weeks * 7;
if (today <= extraDays) {
    days += 2;
}
days += extraDays;
Run Code Online (Sandbox Code Playgroud)