我有一个方法,它接受一些参数并生成一些XML,以便发送到一个过时的web服务。
我需要在XML中包括:
日期(Yyyy Dd) 开放时间(hh:mm) 关闭时间(hh:mm)
现在,当我必须单独提供日期/时间时,我使用了一个DateTime参数,并将日期格式化为一个字段,将时间格式化为另一个字段。
在这个场景中,我每天只有一个约会和两次约会。
我最初的方法是3个输入字段-一个日期,两个时间盘。这感觉是错误的,因为时间盘可以覆盖超过一天。
另一个想法是采取两个日期-使用一个日期字段,然后从两个字段的时间为其他字段。这感觉不对,因为提供的日期实际上可能是不同的日子。
我能想到的最后一个选项是拥有一个OpeningDateTime参数和一个OpenDuration时隙,但是,由于打开/关闭时间是根据一周中的一天(而不是日期)存储的,所以开发人员需要自己计算时间盘--这似乎很愚蠢,因为它违反了枯燥的原则。更别提时间可以是>1天了
总之,我有3个解决方案可以工作,但没有一个感觉对-和前两个解决方案只会在运行时发现问题。如果方法的定义是这样的话,输入无效的数据是困难的(如果不是不可能的话),我更希望这样做--然后在设计时才能看到这一点。
也许我分析过度了,但肯定有更清晰的方法
有人有首选的方法吗?如果有,为什么?
发布于 2010-08-26 12:36:42
您真正想要的是一个库,它的类型分别表示“日期”和“时间”.比如野田时间..。但不幸的是,这还没有准备好生产:(基本上.NET没有一组非常丰富的时序类型:
我认为你最初对DateTime +2 TimeSpans的想法是目前最好的主意。特别是,DateTime.TimeOfDay是一个TimeSpan这一事实表明,在正常的方法中,这是尽可能合适的表示。
https://stackoverflow.com/questions/3575043
复制相似问题