gpt4 book ai didi

c# - 在 wpf 中使用日期选择器的日期差异

转载 作者:行者123 更新时间:2023-11-30 15:38:17 25 4
gpt4 key购买 nike

我正在尝试计算两个日期之间的天数并将结果显示在文本 block 中,我正在使用 wpf。但是我得到一个可为 null 的对象必须在第一行有一个值 :S

    private void button20_Click(object sender, RoutedEventArgs e)
{
DateTime start = datePicker1.DisplayDateStart.Value.Date;
DateTime finish = datePicker2.DisplayDateStart.Value.Date;
TimeSpan difference = start.Subtract(finish);
textBlock10.Text = Convert.ToString(difference);
}

最佳答案

正如错误消息所暗示的那样,DisplayDateStart 是一个可为 null 的属性,这意味着它可以(默认情况下,确实)没有值。您必须处理这种情况才能产生合理的结果。

也就是说,DisplayDateStart 属性指的是 DatePicker 日历中显示的最早日期,而不是用户选择的日期:为此,您需要 SelectedDate 属性,这也是可以为 null 的。

有多种方法可以处理 NULL 值:在 TextBlock 中不显示任何内容、显示“N/A”或其他一些默认值等。这是一个示例:

private void button20_Click(object sender, RoutedEventArgs e)
{
// This block sets the TextBlock to a sensible default if dates haven't been picked
if(!datePicker1.SelectedDate.HasValue || !datePicker2.SelectedDate.HasValue)
{
textBlock10.Text = "Select dates";
return;
}

// Because the nullable SelectedDate properties must have a value to reach this point,
// we can safely reference them - otherwise, these statements throw, as you've discovered.
DateTime start = datePicker1.SelectedDate.Value.Date;
DateTime finish = datePicker2.SelectedDate.Value.Date;
TimeSpan difference = finish.Subtract(start);
textBlock10.Text = difference.TotalDays.ToString();
}

关于c# - 在 wpf 中使用日期选择器的日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11639516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com