在c# windows phone 7中计算PM和AM之间的时间差
本文关键字:AM 之间 时间差 PM 计算 windows phone | 更新日期: 2023-09-27 18:05:02
我正在尝试计算下午和上午的时差。
我有周一1:01 PM和周二1:00AM的数据。
我使用下面的代码来计算时差。
我得到的结果是:
-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));
}
}
有点晚了,但我是这么做的。
一个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)
}
是否替换:
TimeSpan timeLeft = timeSelected.Subtract(timeNow);
TimeSpan timeLeft = timeNow.Substract(timeSelected);
修复你的问题?