我正在寻找一个代表并发事件的类, 例如: 每个工作日,从10:00开始,需要2个小时。等。
我知道如何实现它我的自我,我想知道是否有一个预先设定的类。
TNX!
答案 0 :(得分:8)
不,但这里有一个带回家:
public class DateTimeAndTimeSpan
{
public DateTime Time{get;set;}
public TimeSpan Duration{get;set;}
}
答案 1 :(得分:1)
我会让这样一个类不可变,甚至可能是一个结构。
您可以选择开始/结束或开始/持续时间内部表示。应该对公共API不可见。
如果您喜欢,可以重载一些运算符并覆盖Equals
和GetHashCode
以获得完整的值语义。
public class TimeInterval
{
private readonly DateTime _start;
private readonly DateTime _end;
public DateTime Start { get { return _start; } }
public DateTime End { get { return _end; } }
public TimeSpan Duration { get { return _end - _start; } }
public TimeInterval(DateTime start, DateTime end)
{
if(end.Kind != start.Kind)
throw new ArgumentException("Incompatible DateTimes");
_start = start;
_end = end;
}
public TimeInterval(DateTime start, TimeSpan duration)
{
_start = start;
_end = start.Add(duration);
}
}