获取今天的开始时间和结束时间
DateTime start = DateTime.Today;
DateTime End = DateTime.Today.AddDays(86399F / 86400);
string start = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
string end = DateTime.Now.ToString("yyyy-MM-dd")+" 23:59:59";
string start = DateTime.Now.ToString("yyyyMMdd") + " 00:00:00";
string end = DateTime.Now.ToString("yyyyMMdd") + " 23:59:59";
public class DateTimeTool
{
/// <summary>
/// 获取指定日期所在周的第一天,星期一为第一天
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetDateTimeWeekFirstDayMon(DateTime dateTime)
{
DateTime firstWeekDay = DateTime.Now;
try
{
int weeknow = Convert.ToInt32(dateTime.DayOfWeek);
//星期一为第一天,weeknow等于0时,要向前推6天。
weeknow = (weeknow == 0 ? (7 - 1) : (weeknow - 1));
int daydiff = (-1) * weeknow;
firstWeekDay = dateTime.AddDays(daydiff);
}
catch { }
return firstWeekDay;
}
/// <summary>
/// 获取指定日期所在周的最后一天,星期天为最后一天
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetDateTimeWeekLastDaySun(DateTime dateTime)
{
DateTime lastWeekDay = DateTime.Now;
try
{
int weeknow = Convert.ToInt32(dateTime.DayOfWeek);
weeknow = (weeknow == 0 ? 7 : weeknow);
int daydiff = (7 - weeknow);
lastWeekDay = dateTime.AddDays(daydiff);
}
catch { }
return lastWeekDay;
}
/// <summary>
/// 获取指定日期的月份第一天
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetDateTimeMonthFirstDay(DateTime dateTime)
{
if (dateTime == null)
{
dateTime = DateTime.Now;
}
return new DateTime(dateTime.Year, dateTime.Month, 1);
}
/// <summary>
/// 获取指定月份最后一天
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetDateTimeMonthLastDay(DateTime dateTime)
{
int day = DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
return new DateTime(dateTime.Year, dateTime.Month, day);
}
/// <summary>
/// 获取指定日期所在周的第一天,星期天为第一天
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetDateTimeWeekFirstDaySun(DateTime dateTime)
{
DateTime firstWeekDay = DateTime.Now;
try
{
//得到是星期几,然后从当前日期减去相应天数
int weeknow = Convert.ToInt32(dateTime.DayOfWeek);
int daydiff = (-1) * weeknow;
firstWeekDay = dateTime.AddDays(daydiff);
}
catch { }
return firstWeekDay;
}
/// <summary>
/// 获取指定日期所在周的最后一天,星期六为最后一天
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetDateTimeWeekLastDaySat(DateTime dateTime)
{
DateTime lastWeekDay = DateTime.Now;
try
{
int weeknow = Convert.ToInt32(dateTime.DayOfWeek);
int daydiff = (7 - weeknow) - 1;
lastWeekDay = dateTime.AddDays(daydiff);
}
catch { }
return lastWeekDay;
}
}
获取当前时间的本周、本月、本季、本年的开始和结束时间
namespace ConsoleApp1
{
public enum DataTimeType
{
Week,
Month,
Season,
Year
}
public class DataTimeManager
{
/// <summary>
/// 获取开始时间
/// </summary>
/// <param name="type"></param>
/// <param name="time"></param>
/// <returns></returns>
public static DateTime GetTimeStartByType(DataTimeType type, DateTime time)
{
switch (type)
{
case DataTimeType.Week:
return time.AddDays(-(int)time.DayOfWeek + 1);
case DataTimeType.Month:
return time.AddDays(-(int)time.Day + 1);
case DataTimeType.Season:
var time1 = time.AddMonths(0 - ((time.Month - 1) % 3));
return time1.AddDays(-time1.Day + 1);
case DataTimeType.Year:
return time.AddDays(-(int)time.DayOfYear + 1);
default:
return time.AddDays(-(int)time.DayOfWeek + 1);
//return null;
}
}
/// <summary>
/// 获取结束时间
/// </summary>
/// <param name="DataTimeType">Week、Month、Season、Year</param>
/// <param name="now"></param>
/// <returns></returns>
public static DateTime GetTimeEndByType(DataTimeType type, DateTime now)
{
switch (type)
{
case DataTimeType.Week:
return now.AddDays(7 - (int)now.DayOfWeek);
case DataTimeType.Month:
return now.AddMonths(1).AddDays(-now.AddMonths(1).Day + 1).AddDays(-1);
case DataTimeType.Season:
var time = now.AddMonths((3 - ((now.Month - 1) % 3) - 1));
return time.AddMonths(1).AddDays(-time.AddMonths(1).Day + 1).AddDays(-1);
case DataTimeType.Year:
var time2 = now.AddYears(1);
return time2.AddDays(-time2.DayOfYear);
default:
return now.AddDays(7 - (int)now.DayOfWeek);
}
}
}
}
DateTime dt=DateTime.Now;
int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek);
int dayspan = (-1) * weeknow + 1;
DateTime dt2=dt.AddMonths(1);
//获取本周第一天
this.Label1.Text = DateTime.Now.AddDays(dayspan).ToString("yyyy-MM-dd");
//本月第一天
this.Label1.Text = dt.AddDays(-(dt.Day) + 1).ToString("yyyy-MM-dd");
//本月最后一天
this.Label1.Text = dt2.AddDays(-dt.Day).ToString("yyyy-MM-dd");
//上个月第一天
this.Label1.Text = dt.AddMonths(-1).AddDays(-dt.Day+1).ToString("yyyy-MM-dd");
//上个月最后一天
this.Label1.Text = dt.AddDays(-dt.Day).ToString("yyyy-MM-dd");
//上一年第一天
this.Label1.Text = dt.AddYears(-1).AddMonths(-dt.Month+1).AddDays(-dt.Day+1).ToString("yyyy-MM-dd");
//上一年最后一天
this.Label1.Text = dt.AddMonths(-dt.Month + 1).AddDays(-dt.Day).ToString("yyyy-MM-dd");
//本年第一天
this.Label1.Text = dt.AddMonths(-dt.Month + 1).AddDays(-dt.Day+1).ToString("yyyy-MM-dd");
//上周第一天
this.Label1.Text = DateTime.Now.AddDays(daydiff-7).ToString("yyyy-MM-dd");
//上周最后一天
this.Label1.Text = DateTime.Now.AddDays(daydiff - 1).ToString("yyyy-MM-dd");