我有14個文本框以24小時制格式接受用戶輸入的兩次。單擊計算按鈕時,計算兩次之間的差值,並將十進制格式的時間返回給相應的標籤。理想情況下,我希望用戶簡單地輸入時間作爲整數,例如1253或925,並從下拉框中選擇AM或PM。假設一個用戶在AM選擇時輸入1115,然後輸入300作爲PM選定的輸出時間(如下面的示例條目所示),單擊計算按鈕並在標籤中返回3.75。C#與整數12小時時差
我有這樣的代碼的下方,它的工作原理,但我得到的錯誤時,有不完全四個大字。第一個問題,我如何解決這個問題,如果像800這樣的整數將被讀爲8:00並且不會出錯?
DateTime dt = DateTime.ParseExact(MondayW1InTextBox.Text, "HHmm", CultureInfo.InvariantCulture);
string timestring = dt.ToString("h:mm");
MondayW1Label.Text = timestring;
其次,一旦字符串格式12小時格式,我怎樣才能得到它採取AM/PM下拉列表作爲計算的差異的爭論?
下面是當前僅用於週一文本框計算的C#代碼,它只是24小時的時間格式,但是希望從24小時的時間移開。
protected void CalculateButton_Click(object sender, EventArgs e)
{
TimeSpan TimeIn, TimeOut;
if (!TimeSpan.TryParse(MondayW1InTextBox.Text, out TimeIn)) TimeIn = default(TimeSpan);
if (!TimeSpan.TryParse(MondayW1OutTextBox.Text, out TimeOut)) TimeOut = default(TimeSpan);
MondayW1Label.Text = (TimeOut - TimeIn).TotalHours.ToString("f2");
}
不是你的問題,但是...你沒有考慮到DST轉換。你的計算需要一個實際的日期。 – 2014-09-19 00:26:52
我住在亞利桑那州,我們不遵守夏令時。 – Highi 2014-09-19 21:36:47
有趣。讓我想起那個古老的C軼事,講述一個只在星期三崩潰的節目:「char dayNames [] [9] = {」Wednesday「};'' – 2014-09-19 23:47:14