2012-07-16 81 views
2

我在UI上有以下字段:datepicker,hours下拉菜单,分钟下拉菜单和am/pm下拉菜单。转换为12小时格式

在我的控制,我想绑在一起,这些领域并创建这样一个DateTime值(5/18/2012 2:45 PM):

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

我不明白这个问题。 DateTime不包含特定的格式。你确切的问题是什么?需要更多的代码来帮助你。 – 2012-07-16 17:11:54

+0

这是哪一种语言?选择C#或Vb,而不是两者。 – Drise 2012-07-16 17:18:12

回答

4

转换上午12点和下午12点为0和12取模小时12:

(model.ScheduledHour % 12) + (model.ScheduledAMPM == "AM" ? 0 : 12) 

我还建议编写单元测试,以验证所有的特殊情况。

相关问题