在我的ASP.NET web表單中,我有3個字段 - 小時,分鐘和上午/下午。如何將這三個字段的值合併爲一個變量,然後將am/pm小時轉換爲標準24小時時間,如05:20 PM = 17:20。這需要在C#中完成。將AM/PM時間轉換爲標準時間格式hh:mm用C#
感謝您的幫助事先。
在我的ASP.NET web表單中,我有3個字段 - 小時,分鐘和上午/下午。如何將這三個字段的值合併爲一個變量,然後將am/pm小時轉換爲標準24小時時間,如05:20 PM = 17:20。這需要在C#中完成。將AM/PM時間轉換爲標準時間格式hh:mm用C#
感謝您的幫助事先。
你是說你開始接觸時,分不同的價值觀,和AM/PM?
public string Get24HourTime(int hour, int minute, string ToD)
{
int year = DateTime.Now.Year;
int month = DateTime.Now.Month;
int day = DateTime.Now.Day;
if (ToD.ToUpper() == "PM") hour = (hour % 12) + 12;
return new DateTime(year, month, day, hour, minute, 0).ToString("HH:mm");
}
如果只需要時間,您可以放置假年,月和日。
DateTime time = new DateTime(year, month, day, hour, minute, second);
string time = time.ToString("HH:mm");
var hour = int.Parse(ddlHour.SelectedValue);
var min = int.Parse(ddlMin.SelectedValue);
var ampm = ddlAmPm.SelectedValue;
hour = ampm == "AM" ? hour : (hour % 12) + 12; //convert 12-hour time to 24-hour
var dateTime = new DateTime(0,0,0, hour, min, 0);
var timeString = dateTime.ToString("HH:mm");
50%的情況下不必要的重新分配,使用:if(ampm ==「PM」)hour =(hour%12)+ 12;仍然工作+1 – 2011-02-16 19:20:42
非常真實。我最初將該代碼內聯到DateTime構造函數參數中,該參數會保留原始小時值,但看起來太忙了。 – KeithS 2011-02-16 19:29:24
string hour = hourField.Text
string minute = minuteField.Text
string AMPM = ddl.SelectedItem.ToString();
//AMPM is either "AM" or "PM"
timeString = hour + ":" + minute + " " + AMPM
//the procued string in timeString is e.g. "10:45 PM"
DateTime time = DateTime.Parse(timeString);
你必須觀察到,12:00 AM是午夜,應出示00:00。事實上,凌晨1點是早上1點之前的一個小時,使用模塊你必須這樣做:
if(hour == 12)hour = 0;
if(AMPM == "PM") hour = (hour % 12) + 12;
時間是用戶輸入值。 – cycero 2011-02-16 19:13:41