如何验证输入日期是否在日期间隔内?

How to validate whether an input date is with in an date interval?

我正在使用c 语言,我们现在的课程是关于结构的。这是我的代码的一部分,"temp" 是一个结构,其中也有一个日期结构。但是,有些情况下,某些有效日期直到最后一个条件才能进入。

if( temp.Date.year >= start.year &&  temp.Date.year <= end.year)    
if( (temp.Date.year >= start.year &&  temp.Date.year <= end.year) && (temp.Date.month >= start.month &&  temp.Date.month <= end.month) )    
if( (temp.Date.year >= start.year &&  temp.Date.year <= end.year) && (temp.Date.month >= start.month &&  temp.Date.month <= end.month) && temp.Date.day >= start.day &&  temp.Date.day <= end.day)
                        isDateValid = 1;

使用 KISS 方法。保持小而简单。

您可以使用一系列奇怪的条件,或者简单地将您的日期转换为更方便的日期。

unsigned long start = start.Date.Year * 10000ul + start.Date.month * 100 + start.Date.day;

对 temp 和 end 做同样的事情。

这将为我们提供一些可以轻松比较的数值 YYYYMMDD。

if (start <= temp && temp <= end)
    isValid = true;

虽然这似乎是关于结构的练习,但您可能会将结构的使用限制为提取值。