检查用户输入的日期是否在IF语句中的两个日期之间?C#

检查用户输入的日期是否在IF语句中的两个日期之间?C#,c#,datetime,C#,Datetime,用户已经输入了他们的生日,我试图找出这个日期(我称之为UserBD)是否在2个日期(Date1和Date2)之间 这样我就可以根据用户的生日来计算他们的星号 到目前为止,我已经试着做了以下几点,但显然是错误的,因为日子不是无限地向上跑,而是在月底重置: DateTime AquariusStart = new DateTime(1900, 01, 20); DateTime AquariusEnd = new DateTime(1900, 02, 18); if (userBD.Month &

用户已经输入了他们的生日,我试图找出这个日期(我称之为UserBD)是否在2个日期(Date1和Date2)之间

这样我就可以根据用户的生日来计算他们的星号

到目前为止,我已经试着做了以下几点,但显然是错误的,因为日子不是无限地向上跑,而是在月底重置:

DateTime AquariusStart = new DateTime(1900, 01, 20);
DateTime AquariusEnd = new DateTime(1900, 02, 18);

if (userBD.Month >= AquariusStart.Month && 
    userBD.Month <= AquariusEnd.Month && 
    userBD.Day >= AquariusStart.Day && 
    userBD.Day <= AcquarisStart.Day)
{
   Console.WriteLine("Your Star Sign is Aquarius!");
}
DateTime-AquariusStart=newdatetime(1900,01,20);
DateTime AquariusSend=新日期时间(1900、02、18);
如果(userBD.Month>=AquariusStart.Month&&
userBD.Month=AquariusStart.Day&&

userBD.Day您可以比较日期时间。因此您可以这样做:

var birthDay = new DateTime(1900, userBirthDay.Month, userBirthDay.Day);
if(aquariusStart <= birthDay && birthDay < aquariusEnd)
{
  //Do something.
}
var birthDay=newdatetime(1900,userBirthDay.Month,userBirthDay.Day);

如果(宝瓶座开始这样做可以:

DateTime AquariusStart = new DateTime(DateTime.Now.Year, 01, 20);
DateTime AquariusEnd = new DateTime(DateTime.Now.Year, 02, 18);

DateTime UserBd = new DateTime(DateTime.Now.Year, 02, 19);

if (DateTime.Compare(AquariusStart, UserBd) < 0 &&
    DateTime.Compare(AquariusEnd, UserBd) >= 0)
{
     Console.WriteLine("Your Star Sign is Aquarius!");
}
DateTime-AquariusStart=newdatetime(DateTime.Now.Year,01,20);
DateTime AquariusSend=新的日期时间(DateTime.Now.Year,02,18);
DateTime UserBd=新的DateTime(DateTime.Now.Year,02,19);
如果(DateTime.Compare(AquariusStart,UserBd)<0&&
DateTime.Compare(宝瓶座发送,用户BD)>=0)
{
你的星座是水瓶座;
}

如果(userBD>=AquariusStart&&userBD当然,如果你能告诉我如何使日期时间的年份不与生日冲突,你能检查一下吗?(即如果userBD.Year是2000,则日期时间将在2000年内搜索或完全忽略年份).你只需将开始/结束日期与你的生日定在同一年,你就可以进行任何比较like@WebDev-当然,只要做
DateTime-AquariusStart=new-DateTime(userBD.Year,01,20);
DateTime-aquariussend=new-DateTime(userBD.Year,02,18);
。如何使DateTime的年份与用户的生日年份同步的可能重复项?将其编辑为使用同一年。您必须创建一个新的DateTime,因为DateTime是不可变的。我总是不喜欢使用DateTime.Now。如果开始设置为2016 23:59:59,并且用户BD设置为2017 00:00:00,则可能会失败。@Carra是的,您是是的……但这是一个非常边缘化的案例。无论如何,这只是为了显示op
DateTime。比较
:)