检查日期等于第一个月的日期C#

用户可以以MM \ DD \ YYYY格式输入任何日期,月份和年份,如12/12 / 2013,1 / 1 / 2014,7 / 5 / 2014,5 / 1/2012。

如何查看日期是第一个月的日期?

如果用户输入不是第一个月的日期,我想将该条目修改为第一个月的日期。 在我的例子中,我想要

12/12/2013 as 12/1/2013 2014年1月1日2014年1月1日(无变化)2014年7月5日作为7/1/2014 5/1/2012为2012年5月1日(否)更改)

谢谢

 DateTime date = ... // your original date here... // Don't bother checking, just create a new date for the 1st. date = new DateTime(date.Year, date.Month, 1); 

更新:OP显然已经改变了规格:

 DateTime date = ... // your original date here... if (date.Day != 1) date = new DateTime(date.Year, date.Month, 1).AddMonths(1); 

(让.AddMonths()方法担心12月份滚动的那一年……)

IMO,因为你对用户有一个明确的格式(MM \ DD \ YYYY),为什么不做一个简单的拆分并挖掘你的命中:

 string arbitDate = "4/3/2014"; string UsersFirstDay = arbitDate.Trim().Split(new String[] { "/" }, StringSplitOptions.RemoveEmptyEntries)[1].Trim();//index 1 is the DD part - according to your format UsersFirstDay = (UsersFirstDay == "1") ? UsersFirstDay : "1"; 

将您的日期传递给此function:

 public static void ConvertToFirstDate(ref DateTime dt){ TimeSpan ts = dt.Subtract(new DateTime(dt.Year, dt.Month, 1)); dt = dt.AddDays(-ts.Days); }