C# 如何将月份和年份与DateParse进行比较

C# 如何将月份和年份与DateParse进行比较,c#,datetime,C#,Datetime,我必须检查一个日期(月-年)是否小于实际日期 我只知道用一个月或一年的时间,比如 DateTime.Parse(o.MyDate).Month <= DateTime.Now.Month DateTime.Parse(o.MyDate).Monthvar-date=DateTime.Parse(o.MyDate); var年=日期年; //我们甚至不想知道12月31日23.59.59会发生什么:-) var currentTime=DateTime.Now; var currentYea

我必须检查一个日期(月-年)是否小于实际日期

我只知道用一个月或一年的时间,比如

DateTime.Parse(o.MyDate).Month <= DateTime.Now.Month
DateTime.Parse(o.MyDate).Month
var-date=DateTime.Parse(o.MyDate);
var年=日期年;
//我们甚至不想知道12月31日23.59.59会发生什么:-)
var currentTime=DateTime.Now;
var currentYear=currentTime.Year;
布尔结果=年份<当前年份|
(年份==当前年份和

date.Month如果年份相同,比较月份,如果年份不相同,您的年份必须小于现在:

var yourDate = ...;
if((yourDate.Year == DateTime.Now.Year && yourDate.Month < DateTime.Now.Month)
   || yourDate.Year < DateTime.Now.Year)
{
    // yourDate is smaller than todays month.
}
如果结果小于0,则日期1 如果结果为0,则date1==date2
如果结果大于0,则date1>date2

var date1=new DateTime(year1,month1,1);
var date1 = new DateTime(year1, month1, 1);
var date2 = new DateTime(year2, month2, 1);

if(date1 < date2)...
var date2=新的日期时间(第2年、第2个月、第1年); 如果(日期1<日期2)。。。
您现在拥有的有什么问题吗?
Parse
是否始终适用于您?解析它一次,然后使用解析实例中的值进行处理,这样会更简单。例如,我必须检查10-2011(现在)是在2011年1月到2012年4月之间…为什么有三个日期?有没有比o.MyDate和DateTime更多的日期。现在?我已经更新了我的目标。它无法使用此代码。抱歉,不清楚:)希望现在你能理解我在找什么…我知道如何使用单月或单年来完成此操作。但不是我所问的:)是我是否可以直接查一查同月的年份…@markzzz:我的回答完全符合你的要求。它检查某个日期是否在某个日期范围内。月/年也是一个日期,相当于01/Month/Year。请再次尝试理解代码。我更新了我的答案,使它更明确。是的,但检查第一年,而不是第一个月。不直接是一年一个月。这就是我要问的……但如果我做不到,我会使用您自己的代码:)
var date = DateTime.Parse(o.MyDate).Date; // We round to the day
date = date.AddDays(-date.Day); // and we remove the day

var currentDate = DateTime.Now.Date;
currentDate = currentDate.AddDays(-currentDate.Day);

bool result = date <= currentDate;
var date = DateTime.Parse(o.MyDate);
var currentTime = DateTime.Now;

// Each year can be subdivided in 12 parts (the months)
bool result = date.Year * 12 + date.Month <= currentTime.Year * 12 + currentTime.Month;
var yourDate = ...;
if((yourDate.Year == DateTime.Now.Year && yourDate.Month < DateTime.Now.Month)
   || yourDate.Year < DateTime.Now.Year)
{
    // yourDate is smaller than todays month.
}
var yourDate = ...;
var lowerBoundYear = 2011;
var lowerBoundMonth = 1;
var upperBoundYear = 2012;
var upperBoundMonth = 4;

if(((yourDate.Year == lowerBoundYear && yourDate.Month >= lowerBoundMonth) || 
    yourDate.Year > lowerBoundYear
   ) &&
   ((yourDate.Year == upperBoundYear && yourDate.Month <= upperBoundMonth) ||
    yourDate.Year < lowerBoundYear
   ))
{
    // yourDate is in the time range 01/01/2011 - 30/04/2012
    // if you want yourDate to be in the range 01/02/2011 - 30/04/2012, i.e. 
    // exclusive lower bound, change the >= to >.
    // if you want yourDate to be in the range 01/01/2011 - 31/03/2012, i.e.
    // exclusive upper bound, change the <= to <.
}
DateTime dateCheck = DateTime.Parse(o.MyDate);
bool result = ((Now.Month - dateCheck.Month) + 12 * (Now.Year - dateCheck.Year)) > 0
Date date1 = new Date(2011, 1, 1, 0, 0, 0);
Date date2 = new Date(2011, 2, 1, 0, 0, 0);

int result = DateCompare(date1, date2);
var date1 = new DateTime(year1, month1, 1);
var date2 = new DateTime(year2, month2, 1);

if(date1 < date2)...