计算一个人加班时间的算法 加班算法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static void Main(){ TimeRange workHours = new TimeRange(TimeSpan.FromHours(8), TimeSpan.FromHours(20)); List<TimeRange> exceptions = new List<TimeRange>() { new TimeRange(TimeSpan.FromHours(00.00), TimeSpan.FromHours(08.50)), new TimeRange(TimeSpan.FromHours(11.50), TimeSpan.FromHours(13.00)), new TimeRange(TimeSpan.FromHours(17.00), TimeSpan.FromHours(19.00)), }; var ranges = GetEffectiveWorkHours(workHours, exceptions); var hours = ranges.Sum(r => (r.End - r.Start).TotalHours); //8小时 //(12小时,减去: 早上半小时,中午一个半,傍晚两小时)}struct TimeRange{ public TimeRange(TimeSpan s, TimeSpan e) { this.Start = s; this.End = e; } public TimeSpan Start; public TimeSpan End;}static List<TimeRange> GetEffectiveWorkHours(TimeRange workHours, List<TimeRange> exceptions){ List<TimeRange> result = new List<TimeRange>(){workHours}; foreach (var exception in exceptions) { List<TimeRange> outputs = new List<TimeRange>(); foreach (var range in result) { if (range.Start <= exception.End && range.End >= exception.Start) { if (range.Start < exception.Start) { outputs.Add(new TimeRange(range.Start, exception.Start)); } if (range.End > exception.End) { outputs.Add(new TimeRange(exception.End, range.End)); } } else { outputs.Add(range); } } result = outputs; } return result;} OPC Client和OPC Server有用过的没?他们之间是个怎么样的逻辑流程啊?在线等待大侠!!!!!!!!!!!! C# 2010中Chart應該問題 请问:这种与radiobutton有关的效果如何实现? 多线程的小问题MVC 这样不行,无法保存;正被别的用户锁定。 button上画的线自动消失了?? 高分求一数据算法 在一个函数体中能否用 ref 呢? ListView 刷新数据的功能 我急需一个电脑摄像头显示和图象捕捉的代码 C#,datagridview的某列绑定checkbox控件后,怎么判断是否选中 求一个算法如何用C#实现
static void Main()
{
TimeRange workHours = new TimeRange(TimeSpan.FromHours(8), TimeSpan.FromHours(20));
List<TimeRange> exceptions = new List<TimeRange>()
{
new TimeRange(TimeSpan.FromHours(00.00), TimeSpan.FromHours(08.50)),
new TimeRange(TimeSpan.FromHours(11.50), TimeSpan.FromHours(13.00)),
new TimeRange(TimeSpan.FromHours(17.00), TimeSpan.FromHours(19.00)),
};
var ranges = GetEffectiveWorkHours(workHours, exceptions);
var hours = ranges.Sum(r => (r.End - r.Start).TotalHours); //8小时
//(12小时,减去: 早上半小时,中午一个半,傍晚两小时)
}struct TimeRange
{
public TimeRange(TimeSpan s, TimeSpan e)
{
this.Start = s; this.End = e;
}
public TimeSpan Start;
public TimeSpan End;
}static List<TimeRange> GetEffectiveWorkHours(TimeRange workHours, List<TimeRange> exceptions)
{
List<TimeRange> result = new List<TimeRange>(){workHours};
foreach (var exception in exceptions)
{
List<TimeRange> outputs = new List<TimeRange>();
foreach (var range in result)
{
if (range.Start <= exception.End && range.End >= exception.Start)
{
if (range.Start < exception.Start)
{
outputs.Add(new TimeRange(range.Start, exception.Start));
}
if (range.End > exception.End)
{
outputs.Add(new TimeRange(exception.End, range.End));
}
}
else
{
outputs.Add(range);
}
}
result = outputs;
}
return result;
}