獲取今天的開始時間和結束時間
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");