我有一个奇怪的业务要求,输出日期为01:00到24:00,而不是通常的00:00到23:00。这真是一个疯狂的要求,但遗憾的是我认为我无法避免它。
这将是我们软件中的一个配置选项,所以我仍然需要支持普通的00-23,所以我希望我能用格式字符串以某种方式做到这一点。但我也在考虑使用正则表达式对结果字符串进行后处理,如果这样可以更容易。
谢谢!
答案 0 :(得分:3)
通过创建自己的格式提供程序来扩展.NET:http://msdn.microsoft.com/en-us/library/0asazeez(VS.71).aspx
答案 1 :(得分:2)
这听起来像是包装类的一个很好的候选者,它用于根据业务规则格式化DateTime:
public class BusinessDateTimeFormatter
{
public BusinessDateTimeFormatter(DateTime dateTime)
{
_dateTime = dateTime;
}
public override string ToString()
{
return String.Format("{0} {1}:{2}", _dateTime.Date, _dateTime.Hour + 1, _dateTime.Minute);
}
}
或者,也许更准确地说,您可以创建一个表示业务的DateTime想法的类型。在面向对象的设计中,使用自定义类型替换原始类型经常发生,因为要建模的域具有与您描述的域相同的特殊限制。