// Get date type and offset days.
string dateType = string.Empty;
int days = 0;
DateTime FirstDayOfThisMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0);
DateTime CustomDate = new DateTime();
switch (dateType.ToLower())
{
case "currentdate":
CustomDate = DateTime.Now;
break;
case "firstdayofthismonth":
CustomDate = FirstDayOfThisMonth;
break;
case "lastdayofthismonth":
CustomDate = FirstDayOfThisMonth.AddMonths(1).AddSeconds(-1);
break;
case "firstdayofpreviousmonth":
CustomDate = FirstDayOfThisMonth.AddMonths(-1);
break;
case "lastdayofpreviousmonth":
CustomDate = FirstDayOfThisMonth.AddSeconds(-1);
break;
case "firstdayofnextmonth":
CustomDate = FirstDayOfThisMonth.AddMonths(1);
break;
case "lastdayofnextmonth":
CustomDate = FirstDayOfThisMonth.AddMonths(2).AddSeconds(-1);
break;
case "firstdayofthisyear":
CustomDate = new DateTime(DateTime.Now.Year, 1, 1, 0, 0, 0);
break;
case "lastdayofthisyear":
CustomDate = new DateTime(DateTime.Now.Year, 12, 31, 23, 59, 59);
break;
case "firstdayoflastyear":
CustomDate = new DateTime(DateTime.Now.AddYears(-1).Year, 1, 1, 0, 0, 0);
break;
case "lastdayoflastyear":
CustomDate = new DateTime(DateTime.Now.AddYears(-1).Year, 12, 31, 23, 59, 59);
break;
case "firstdayofthissemester":
CustomDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month <= 6 ? 1 : 7, 1, 0, 0, 0);
break;
case "lastdayofthissemester":
CustomDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month <= 6 ? 6 : 12, DateTime.Now.Month <= 6 ? 30 : 31, 23, 59, 59);
break;
case "firstdayofprevioussemester":
CustomDate = (new DateTime(DateTime.Now.Year, DateTime.Now.Month <= 6 ? 1 : 7, 1, 0, 0, 0)).AddMonths(-6);
break;
case "lastdayofprevioussemester":
CustomDate = (new DateTime(DateTime.Now.Year, DateTime.Now.Month <= 6 ? 6 : 12, DateTime.Now.Month <= 6 ? 30 : 31, 23, 59, 59)).AddMonths(-6);
break;
case "firstdayofthisquarter":
CustomDate = FirstDayOfThisMonth.AddMonths(0 - (FirstDayOfThisMonth.Month - 1) % 3);
break;
case "lastdayofthisquarter":
CustomDate = FirstDayOfThisMonth.AddMonths(3 - (FirstDayOfThisMonth.Month - 1) % 3).AddSeconds(-1);
break;
case "firstdayofpreviousquarter":
CustomDate = FirstDayOfThisMonth.AddMonths(-3 - (FirstDayOfThisMonth.Month - 1) % 3);
break;
case "lastdayofpreviousquarter":
CustomDate = FirstDayOfThisMonth.AddMonths(0 - (FirstDayOfThisMonth.Month - 1) % 3).AddSeconds(-1);
break;
case "dynamicdate":
DateTime CurrentDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
if (days < 0)
{
CustomDate = CurrentDate.AddDays(days);
}
else
{
CustomDate = CurrentDate.AddDays(days + 1).AddSeconds(-1);
}
break;
default:
CustomDate = DateTime.Now;
break;
}

789

被折叠的 条评论
为什么被折叠?



