datetime dt = datetime.now; //目前時間
datetime startweek = dt.adddays(1 - convert.toint32(dt.dayofweek.tostring("d"))); //本周周一
datetime endweek = startweek.adddays(6); //本周周日
datetime startmonth = dt.adddays(1 - dt.day); //本月月初
datetime endmonth = startmonth.addmonths(1).adddays(-1); //本月月末
//datetime endmonth = startmonth.adddays((dt.addmonths(1) - dt).days - 1); //本月月末
datetime startquarter = dt.addmonths(0 - (dt.month - 1) % 3).adddays(1 - dt.day); //本季度初
datetime endquarter = startquarter.addmonths(3).adddays(-1); //本季度末
datetime startyear = new datetime(dt.year, 1, 1); //本年年初
datetime endyear = new datetime(dt.year, 12, 31); //本年年末
#region 得到一周的周一和周日的日期
/// <summary>
/// 計算本周的周一日期
/// </summary>
/// <returns></returns>
public static datetime getmondaydate()
{
return getmondaydate(datetime.now);
}
/// <summary>
/// 計算本周周日的日期
/// </summary>
/// <returns></returns>
public static datetime getsundaydate()
{
return getsundaydate(datetime.now);
}
/// <summary>
/// 計算某日起始日期(禮拜一的日期)
/// </summary>
/// <param name="somedate">該周中任意一天</param>
/// <returns>返回禮拜一日期,後面的具體時、分、秒和傳入值相等</returns>
public static datetime getmondaydate(datetime somedate)
{
int i = somedate.dayofweek - dayofweek.monday;
if (i == -1) i = 6;// i值 > = 0 ,因為枚舉原因,sunday排在最前,此時sunday-monday=-1,必須+7=6。
timespan ts = new timespan(i, 0, 0, 0);
return somedate.subtract(ts);
}
/// <summary>
/// 計算某日結束日期(禮拜日的日期)
/// </summary>
/// <param name="somedate">該周中任意一天</param>
/// <returns>返回禮拜日日期,後面的具體時、分、秒和傳入值相等</returns>
public static datetime getsundaydate(datetime somedate)
{
int i = somedate.dayofweek - dayofweek.sunday;
if (i != 0) i = 7 - i;// 因為枚舉原因,sunday排在最前,相減間隔要被7減。
timespan ts = new timespan(i, 0, 0, 0);
return somedate.add(ts);
}
#endregion
日期轉換成字元型
string t = row["time"].tostring()
string time = datetime.parse(t).tostring("yyyy-mm-dd");
convert.todatetime( "07-05-2007 ").tostring( "yyyy-mm-dd ") 這句代碼轉換後是string類型