在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));
    }
}

在c# windows phone 7中计算PM和AM之间的时间差

有点晚了,但我是这么做的。

一个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);

修复你的问题?