Check Date = c#中每个月的第一个日期

本文关键字:第一个 日期 Date Check | 更新日期: 2023-09-27 18:15:10

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

如何检查日期是每月的第一天?

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

12/12/2013为12/1/20131/1/2014改为1/1/2014(无变化)7/5/2014改为7/1/20145/1/2012改为5/1/2012(不变)

谢谢

Check Date = c#中每个月的第一个日期

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月滚动的年份…)

在我看来,既然你对用户有一个明确的期望格式(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";

将日期传递给这个函数:

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