【发布时间】:2012-01-04 09:03:31
【问题描述】:
我想创建一些可以计算绝对或相对时间段的类。
含义:构造函数将获得时间段和单位(3 周)或两个DateTime 开始和结束时间。我写了以下代码:
public class TimePeriod
{
public State TimePerriodState { get; private set; }
public RelativeTime RelativeTimePeriod { get; private set; }
public int UnitsOfTime { get; private set; }
public DateTime? StartTime { get; private set; }
public DateTime? EndTime { get; private set; }
public TimePeriod(RelativeTime relativeTime, int unitsOfTime)
{
TimePerriodState = State.Absolute;
RelativeTimePeriod = relativeTime;
UnitsOfTime = unitsOfTime;
}
public TimePeriod(DateTime startTime , DateTime endTime)
{
TimePerriodState = State.Relative;
StartTime = startTime;
EndTime = endTime;
}
public enum State
{
None,
Absolute,
Relative
}
public enum RelativeTime
{
None,
Hours,
Days,
Weeks,
Months,
Year
}
}
但我不喜欢基于状态的用法。 最后,数据将作为两个不同的控件出现在 UI 中。有没有更好的方法让 API 变得更好?也许传入数据并即时计算 dateTime 或类似的东西?
更新:
使用是相对于它被使用的任何时间。意味着无法输入时间跨度。假设我们需要从现在开始的 10 天之前的相对时间或从 X 到 Y 的固定天数
TimeSpan 将在不同的 BL 类中计算(这是一个 POCO 类)
【问题讨论】: