我想比较两个日期,以确认两年之间的年数为>= 18
。例如,如果我的2个日期是03-12-2011
和03-12-1983
,那么这应该通过验证,但是,如果我的2个日期是03-12-2011
和03-12-1995
,那么这应该无法通过验证。< / p>
任何人都可以帮助我吗?
答案 0 :(得分:15)
希望这就是你要找的东西
public bool CheckDate(DateTime date1, DateTime date2)
{
return date1.AddYears(-18) < date2;
}
答案 1 :(得分:2)
我重复了你的问题标题&amp;描述使它更清楚一点。根据我从原始帖子中收集到的内容,您正在寻找年龄验证功能。这就是我要做的事情:
function VerifyAge(DateTime dateOfBirth)
{
DateTime now = DateTime.Today;
int age = now.Year - dateOfBirth.Year;
if (now.Month < dateOfBirth.Month || (now.Month == dateOfBirth.Month && now.Day < dateOfBirth.Day))
age--;
return age >= 18;
}
答案 2 :(得分:1)
使用TimeSpan
结构。
TimeSpan span= dateSecond - dateFirst;
int days=span.Days;
//or
int years = (int) (span.Days / 365.25);
答案 3 :(得分:0)
答案 4 :(得分:0)
使用Timespan:
TimeSpan day = 03-12-2011 - 03-12-1983;
double year = day.TotalDays / 365.25;
if (year > 18)
{
}
也许你应该使用DateTime.Now
而不是03-12-2011答案 5 :(得分:0)
这是一种检查年龄是否超过18岁的方法:
private bool IsMoreThan18(DateTime from, DateTime to)
{
int age = to.Year - from.Year;
if (from > to.AddYears(-age)) age--;
return age >= 18;
}
答案 6 :(得分:0)
DateTime zeroTime = new DateTime(1, 1, 1);
DateTime a = new DateTime(2008, 1, 1);
DateTime b = new DateTime(2016, 1, 1);
TimeSpan span = b - a;
// because we start at year 1 for the Gregorian
// calendar, we must subtract a year here.
int years = (zeroTime + span).Year - 1;
Console.WriteLine("Years elapsed: " + years);
参考Link
答案 7 :(得分:-1)
创建两个DateTime对象并相互减去它们。 结果也是一个DateTime对象:
DateTime dt = new DateTime(2011, 12, 03);
DateTime dt2 = new DateTime(1983, 12, 03);
DateTime dt3 = dt - dt2;
现在,您可以查看dt3.Year
之间的年数