获取 本周、本月、本年 的开始或结束时间
public class DateTimeUtil
{
public static string GetStarTimetByType(string TimeType, DateTime NowTime)
{
switch (TimeType)
{
case "Week":
return NowTime.AddDays((7 - (int)NowTime.DayOfWeek) % 7 - 7 + 1).ToString("yyyy-MM-dd 00:00:00");
case "Month":
return NowTime.AddDays(-NowTime.Day + 1).ToString("yyyy-MM-dd 00:00:00");
case "Year":
return NowTime.AddDays(-NowTime.DayOfYear + 1).ToString("yyyy-MM-dd 00:00:00");
default://出错啦!!!
throw new NotImplementedException();
}
}
public static string GetEndTimeByType(string TimeType, DateTime NowTime)
{
switch (TimeType)
{
case "Week":
return NowTime.AddDays((7 - (int)NowTime.DayOfWeek) % 7).ToString("yyyy-MM-dd 23:59:59");
case "Month":
return NowTime.AddDays(-NowTime.AddMonths(1).Day + 1).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd 23:59:59");
case "Year":
return NowTime.AddDays(-NowTime.DayOfYear + 1).AddYears(1).AddDays(-1).ToString("yyyy-MM-dd 23:59:59");
default://出错啦!!!
throw new NotImplementedException();
}
}
public static Tuple<DateTime, DateTime> GetWeeks(int? week, int? month)
{
DateTime dt = DateTime.Parse($"{DateTime.Now.Year}-{month.Value}-{DateTime.Now.Day}");
string[] arrDate0 = new string[6];
string[] arrDate1 = new string[6];
int year = dt.Year;
DateTime weekStart = new DateTime(year, month.Value, 1);
DateTime monEnd = weekStart.AddMonths(1).AddDays(-1);
int i = 1;
int dayOfWeek = Convert.ToInt32(weekStart.DayOfWeek.ToString("d"));
DateTime weekEnd = dayOfWeek == 0 ? weekStart : weekStart.AddDays(7 - dayOfWeek);
string content = "";
arrDate0[0] = weekStart.ToString("yyyy-MM-dd 00:00:00");
arrDate1[0] = weekEnd.ToString("yyyy-MM-dd 23:59:59");
while (weekEnd.AddDays(1) <= monEnd)
{
i++;
weekStart = weekEnd.AddDays(1);
weekEnd = weekEnd.AddDays(7) > monEnd ? monEnd : weekEnd.AddDays(7);
arrDate0[i - 1] = weekStart.ToString("yyyy-MM-dd 00:00:00");
arrDate1[i - 1] = weekEnd.ToString("yyyy-MM-dd 23:59:59");
}
content += year + "年" + month + "月共有" + i + "周\n";
return Tuple.Create(DateTime.Parse(arrDate0[week.Value]), DateTime.Parse(arrDate1[week.Value]));
}
}