如何计算下一个/上一个ISO工作日编号?

时间:2017-04-19 08:47:54

标签: next date-arithmetic iso8601 dayofweek weekday

星期一的ISO 8601 standard个工作日1到星期日的7个星期。 给定1到7的工作日数字,您如何计算下一个/上一个工作日的数量?

E.g。给定1,下一个工作日数字为2,前一个数字为7。

1 个答案:

答案 0 :(得分:0)

工作日数字可以通过简单的加法和模数来计算。公式如下:

下周工作日

  

(工作日编号%7)+ 1

上一个工作日编号

  

((工作日编号+5)%7)+ 1

使用C#和NodaTime的IsoDayOfWeek,您可以创建两个简单的扩展方法,如:

public static IsoDayOfWeek NextDay( this IsoDayOfWeek dayOfWeek ) => (IsoDayOfWeek)( (int)dayOfWeek % 7 + 1 );
public static IsoDayOfWeek PreviousDay( this IsoDayOfWeek dayOfWeek ) => (IsoDayOfWeek)( (int)( dayOfWeek + 5 ) % 7 + 1 );