2011-02-17 47 views
0

我在寻找一类表示并发事件, 例如: 在每个工作日的10:00那需要2个小时会谈。等等。有没有一个类同时拥有dateTime和Timespan?

我知道如何实现它我自己,我不知道是否有predifined类。

tnx!

+0

你能解释一下你的问题吗? – 2011-02-17 09:45:20

+2

嗨,你需要什么?也许如果你描述你的用例,我们可以看到最适合的东西。 – 2011-02-17 09:45:35

+1

您可以创建自己的。 – 2011-02-17 09:45:42

回答

1

我会做这样一类不可变,甚至一个结构。

您可以选择开始/结束或开始/持续时间内部表示。对公众API应该是不可见的。

如果你喜欢,你可以超载几个操作符并覆盖EqualsGetHashCode以获得完整的值语义。

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); 
    } 
} 
8

没有,但这里有一个带回家:

public class DateTimeAndTimeSpan 
{ 
    public DateTime Time{get;set;} 
    public TimeSpan Duration{get;set;} 
} 
相关问题