[英]make one date bigger than other c#
你好,我有這個條件:
if (DateTime.Now.Subtract(dateTimePicker_Doc_BirthDate.Value).Days/(365)<18)
{
this.errorProvider1.SetError(this.dateTimePicker_Doc_BirthDate, "Atleast 18 years old");
valid = false;
}
而且我想制作另一個包含此人畢業的內容並設置限制,即他畢業時必須至少年滿18
歲。
我試過這個:但它不起作用
if (DateTime.Now.Subtract(dateTimePicker_Doc_Graduation.Value).Days / (365) < 18 + (18))
{
this.errorProvider1.SetError(this.dateTimePicker_Doc_Graduation, "Atleast 18");
valid = false;
}
這里的主要問題是閏年。 29 Feb 2004
出生的人什么時候18
歲? 有兩種可能的答案:
https://www.buzzfeed.com/lanesainty/leap-year-birthday-teenager-court-ruling
28 Feb 2022
(新西蘭駕照;見 xdtTransform 的評論)1 Mar 2022
(澳大利亞) 在一個簡單的情況下,我們可以將18
年添加到birthDate
並查看18
歲生日是在today
之前還是之后。 對於29 February
我們可能還需要增加1 day
:
DateTime birthDate = dateTimePicker_Doc_BirthDate.Value.Date;
DateTime today = DateTime.Today;
// 0 for 28 Feb 2022; 1 for 1 Mar 2022
int leapPolicy = 1;
if (birthDate.AddYears(18) <= today || // 18th birthday before today or today
birthDate.Day == 29 &&
birthDate.Day == 2 &&
birthDate.AddYears(18).AddDays(leapPolicy) == today) {
// At least 18 years old
}
請注意,那一年不是365
天,而是365.2425
天(公歷),這就是為什么你不能把它當作...Days / 365...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.