因此,我需要返回一个变量,该变量检查用户输入的日期是否在我给定的2个日期之间。目前,我没有执行用户部分。
我尝试检查并返回变量,但给出了以上错误
public bool IsInPeakSeason(DateTime date)
{
DateTime date1 = new DateTime(2019, 06, 15);
DateTime date2 = new DateTime(2019, 08, 15);
DateTime dateCheck >= date1 && dateCheck <date;
return date >= date1 && date < date2;
}
如果日期在给定日期之间或不在给定日期之间,我想返回true或false
答案 0 :(得分:1)
您得到的错误是您尝试在其初始分配中使用dateCheck
,这是不允许的。换句话说,您无法执行类似int number = number + 1;
的操作,因为尚未分配赋值右侧的number
。当然,有问题的行中还必须包含其他错别字,因为它根本不会编译。
无论如何,您实际上根本不需要该行(该变量在其他任何地方都没有使用)。如果删除它,您的代码应该可以按预期工作。
我要进行的一项更改是不对年份部分进行硬编码,而是使用date
参数中指定的年份。这样,该方法将在未来几年中起作用。最好从其他数据源中读取高峰日期范围,因此无需重新编译代码即可对其进行修改。但是我建议的基本思路如下:
public bool IsInPeakSeason(DateTime date)
{
var startPeak = new DateTime(date.Year, 06, 15);
var endPeak = new DateTime(date.Year, 08, 15);
return date >= startPeak && date < endPeak;
}
答案 1 :(得分:-1)
正如@frontear所提到的,关于此行的错误是:
DateTime dateCheck >= date1 && dateCheck <date;
您尝试使用dateCheck
,而无需先为其分配值。使用以下代码,您可以像这样在一行中完全省略dateCheck
:
return (date >= new DateTime(2019, 06, 15) && date <= new DateTime(2019, 08, 15));