2011-08-08 27 views
2

我想計算PM和AM中的時間差。c#windows phone 7中計算PM和AM的時間差異

我有數據星期一下午1:01和星期二上午1:00

我用下面的代碼來計算時差。

而結果我得到的是:

-12小時-1分鐘

我應該如何去做這件事得到正確的時間差?

下面是代碼:

if ((dayNow == "Monday") && (tues == "True")) 
{ 
    DateTime timeNow = DateTime.ParseExact(DateTime.Now.ToShortTimeString(), 
     "h:mm tt", new DateTimeFormatInfo());  
    DateTime timeSelected = DateTime.ParseExact(timePicker.ValueString, 
     "h:mm tt", new DateTimeFormatInfo());  
    TimeSpan timeLeft = timeSelected.Subtract(timeNow); 

    if (timeSelected > timeNow) 
    { 
     string hour = timeLeft.Hours.ToString(); 
     string minute = timeLeft.Minutes.ToString(); 
     string timeDifference = "This alarm is set for " + "1 day and " 
      + hour + " hour and " + minute + " minutes from now."; 
     MessageBox.Show(timeDifference, "Alarm", MessageBoxButton.OK); 
     NavigationService.Navigate(new Uri("/listOfAlarm.xaml?", 
      UriKind.Relative)); 
    } 
    else if (timeSelected < timeNow) 
    { 
     string hour = timeLeft.Hours.ToString(); 
     string minute = timeLeft.Minutes.ToString(); 
     string timeDifference = "This alarm is set for " + hour + 
      " hour and " + minute + " minutes from now."; 
     MessageBox.Show(timeDifference, "Alarm", MessageBoxButton.OK); 
     NavigationService.Navigate(new Uri("/listOfAlarm.xaml?", 
      UriKind.Relative)); 
    } 
    else 
    { 
     NavigationService.Navigate(new Uri("/listOfAlarm.xaml?", 
      UriKind.Relative)); 
    } 
} 
+0

你期待什麼結果呢? –

+0

正確計算沒有( - )符號 –

回答

0

是否更換:

TimeSpan timeLeft = timeSelected.Subtract(timeNow); 

TimeSpan timeLeft = timeNow.Substract(timeSelected); 

解決問題了嗎?

+0

我以前試過還是一樣 –

1

Bit晚了,但這是我做的。

一個If語句,用於判斷您選擇的時間是大於還是小於。如果小於,則會自動增加24小時補償,從而消除負面信號並補償程序。

我轉換的次整數,然後這樣做:

  if (timeSelected > timeNow) 
      { 
       int_hour = Convert.ToInt16(hour); // Convert the string to integer 
      } 
      else 
      { 
       int_hour = Convert.ToInt16(hour) + 24; // Convert the string to integer (Compensates for Negative) 
      }