如何验证输入日期是否在日期间隔内?
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;
虽然这似乎是关于结构的练习,但您可能会将结构的使用限制为提取值。
我正在使用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;
虽然这似乎是关于结构的练习,但您可能会将结构的使用限制为提取值。