我在UI上有以下字段:datepicker,小时下拉列表,分钟下拉列表和上午/下午。
在我的控制器中,我试图将这些字段组合在一起并创建一个像这样的DateTime值(2012年5月18日下午2:45):
model.Scheduled = new DateTime(model.Scheduled.Value.Year, model.Scheduled.Value.Month, model.Scheduled.Value.Day, model.ScheduledHour + (model.ScheduledAMPM == "AM" ? 0 : 12), model.ScheduledMinute, 0);
这适用于大多数情况,但不是在我在小时下拉列表中选择12时。我应该如何重构上面的代码行,使其适用于所有情况?
答案 0 :(得分:4)
按小时模12:
将12 AM和12 PM转换为0和12(model.ScheduledHour % 12) + (model.ScheduledAMPM == "AM" ? 0 : 12)
我还建议编写单元测试以验证所有边缘情况。
答案 1 :(得分:0)
您可以利用方法DateTime. TryParse(string input, out DateTime output)
方法让C#为您进行翻译。