值班组5个人员:ABCDE每周值 一、三、五、七,共四天每班2人一值从4月20号开始值班,算出5月23 号 轮到谁值班?从4月19号开始值班,算出5月30 号 轮到谁值班?
5 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
var staff = new[] { "A", "B", "C", "D", "E" }; //哪些人 var duty = new[] { DayOfWeek.Monday, DayOfWeek.Wednesday, DayOfWeek.Friday, DayOfWeek.Sunday }; //星期几需要有人值班 var group = 2; //每次几个人值班 var count = 0; for (var date = new DateTime(2012, 4, 20); //开始时间 date <= new DateTime(2012, 5, 23); //结束时间 date += TimeSpan.FromDays(1)) { if (duty.Contains(date.DayOfWeek)) { count += group; } } var index = count % staff.Length;
那么最后值班的就是staff数组里index, index+1, ... index+(group-1) 这几个人。把代码里几个地方提取成参数就可以了。
- 5 回答
- 0 关注
- 414 浏览
添加回答
举报
0/150
提交
取消