絶対時間または相対時間を計算できるクラスを作成したいと思います。
意味:コンストラクタは、期間と単位(3週間)または開始時刻と終了時刻の2つを取得します(DateTime
)。私は次のコードを書いています:Cで絶対または相対時間帯クラスを作成する
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
}
}
しかし、その使用法は状態に基づいているのが好きではありません。 最後に、データは2つの異なるコントロールとしてUIに表示されます。 APIを少し良くするための良い方法はありますか?たぶん、データを渡して、その場でdateTimeを計算するか、それとも何かを計算しますか?
UPDATE:
使用は、そのを使用して任意の時間に相対的です。時間を入力することはできません。私はあなたが持っていると思う