C# 问题:将12小时时钟转换为24小时,然后将其反转回来
我是初学者。我正在用MVP编写一个web应用程序,在将12小时时钟转换为24小时时钟时遇到了问题。 因此,有三个下拉框(小时、分钟、上午/下午) 当AM/PM下拉列表显示为PM时,小时值应加12。这是我的代码,但有点不对劲C# 问题:将12小时时钟转换为24小时,然后将其反转回来,c#,datetime,C#,Datetime,我是初学者。我正在用MVP编写一个web应用程序,在将12小时时钟转换为24小时时钟时遇到了问题。 因此,有三个下拉框(小时、分钟、上午/下午) 当AM/PM下拉列表显示为PM时,小时值应加12。这是我的代码,但有点不对劲 public string sunOpenTime { get { if (ddlSundayFrom.SelectedValue == "PM") return sunOpenTime = (ddlSundayOpen
public string sunOpenTime
{
get
{
if (ddlSundayFrom.SelectedValue == "PM")
return sunOpenTime = (ddlSundayOpenTimeHr.Text += 12) + ddlSundayOpenTimeMin.Text;
else
return sunOpenTime = ddlSundayOpenTimeHr.Text + ddlSundayOpenTimeMin.Text;
}
set
{
sunOpenTime = value;
}
}
我的另一个问题是,当用户单击现有记录时,PM/AM下拉列表应该正确显示在网页上。(如果数据库中的记录为18:00,则应为网页上的下午6:00)
我不知道该怎么做。
有人能帮我吗?非常感谢 下面是一个代码示例,说明了如果时间为PM,如何将时间转换为24小时格式。 您可以做相反的操作,即按照下面的示例中类似的行从24小时格式转换为12小时格式&因此,这就留给您了。如果你在那里需要帮助,请告诉我 代码示例:12小时到24小时 备注:用于格式化时间字符串的链接是 编辑1:
<>你可以考虑将转换代码(12小时到24小时)从吸气剂移到一个函数或任何适合你的代码块。本质上,我只是试图传达从12小时到24小时的转换方法。你可以做一些简单的数学来转换24小时时钟的小时数和12小时时钟的小时数
// 24-hour clock to 12-hour clock
int hours12 = (hours24 + 11) % 12 + 1;
string meridiem = hours24 < 12 ? "AM" : "PM";
// 12-hour clock to 24-hour clock
int hours24 = meridiem == "AM"
? (hours12 == 12 ? 0 : hours12)
: (hours12 == 12 ? 12 : hours12 + 12);
//24小时到12小时
整数小时12=(小时24+11)%12+1;
字符串meridiem=小时24<12?“AM”:“PM”;
//12小时到24小时
整小时24=梅里迪姆=“上午”
? (12小时=12?0:12小时)
:(hours12==12?12:hours12+12);
我想这个错误在这里很明显,是因为你的时间,然后你加了分钟?12小时+10分钟将变为22。。。另一件事是,如果我选择12点,它将变成(12+12)变成24+分钟。。还有一个错误,我想你还没有把它转换成整数,做一个加号,我认为它不起作用。如果selectedValue不等于“PM”(我指的是else块),我认为有一个小错误:)因为,If和else块是一样的…@KemalKefeli:Copy-paste会引起如此微妙的错误。谢谢你的指点@谢谢你!我跟随你的方式,使用时间跨度。现在看来这是可行的。非常感谢你!
// 24-hour clock to 12-hour clock
int hours12 = (hours24 + 11) % 12 + 1;
string meridiem = hours24 < 12 ? "AM" : "PM";
// 12-hour clock to 24-hour clock
int hours24 = meridiem == "AM"
? (hours12 == 12 ? 0 : hours12)
: (hours12 == 12 ? 12 : hours12 + 12);