2015-12-02 103 views
0

我有textbox调用HourTb。我从TimeSpan currentTime = DateTime.Now.TimeOfDay;获取当前时间,以使在12小时格式的时间,这里是我做了什么:如何检查在文本框中输入的时间格式

 if (currentTime < TimeSpan.Parse("12:00")) //Morning 
     { 
      if (currentTime.Hours.ToString("00") == "00") 
       HourTb.Text = "12"; 

      else 
       HourTb.Text = currentTime.Hours.ToString("00"); 

      AmOrPmTb.Text = "AM"; 
     } 

     else //Afternoon, night 
     { 
      HourTb.Text = (currentTime - TimeSpan.Parse("12:00")).Hours.ToString("00"); //12-hour format 
      AmOrPmTb.Text = "PM"; 
     } 

的问题,我现在面对的是如何检查值输入到HourTb是在TextChangedEvent一个合适的值:

  • 如果输入> 12或输入= 00或只有0,HourTb.Text = string.Empty;
  • 如果输入是单个数字(例如9),然后HourTb.Text = "09";
+0

首先之一;例如,如果你的输入是'13',你的'else'部分将被执行,你的'HourTb.Text'应该是'01'而不是空字符串。这个问题可能在别的地方。请调试您的代码,看看会发生什么。第二个;既然你用'00'格式化你的'9'格式,它就会有一个前导零“09”。这很正常。 –

回答

0

为了得到时间12小时格式,你可以使用

DateTime.Now.ToString("hh:mm:ss tt") 

为了得到时间以24小时格式,你可以使用

DateTime.Now.ToString("HH:mm:ss tt") 

hh会给你小时,使用12小时制从01到12

HH会给你小时,使用从00 24小时时钟到23

+0

OP在代码部分中没有_any_'DateTime'。它有'TimeSpan's。当然'DateTime.Now'可以基于'currentTime'计算来使用。 –

+0

是的,我只是在计算'currentTime'。 –

+0

Hi @AayushiJain,感谢您的回复,但我想要的是当用户在文本框中输入小时值时的检查部分 – YWah

相关问题