C#根據當前時間確定日期範圍(本週、本月、本季度、本年度)
在C#的開發當中經常遇到關於一個日期時間"+/-"一段時間的問題,下面是一些相關總結,供大家參考.
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); //本年年末
=============================
///
/// 計算本週起始日期(禮拜一的日期)
///
/// 該週中任意一天
///
public static DateTime CalculateFirstDateOfWeek(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);
}
///
/// 計算本週結束日期(禮拜日的日期)
///
/// 該週中任意一天
///
public static DateTime CalculateLastDateOfWeek(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);
}
///
/// 判斷選擇的日期是否是本週(根據系統當前時間決定的‘本週’比較而言)
///
///
///
public static bool IsThisWeek(DateTime someDate)
{
//得到someDate對應的週一
DateTime someMon = CalculateFirstDateOfWeek(someDate);
//得到本週一
DateTime nowMon = CalculateFirstDateOfWeek(DateTime.Now);
TimeSpan ts = someMon - nowMon;
if (ts.Days < 0)
ts = -ts;//取正
if (ts.Days >= 7)
{
return false;
}
else
{
return true;
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-621547/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS獲取本週週一 週日日期、本季度、本月、上月的開端日期、停止日期JS
- 根據時間範圍呼叫gitLab介面查詢Gitlab
- Mysql獲取當天,昨天,本週,本月,上週,上月的起始時間MySql
- Oracle日期時間範圍查詢Oracle
- TypeScript 2 : 獲取當前日期及前後範圍日期【Array】TypeScript
- layui laydate日期時間範圍,時間預設設定為23:59:59UI
- element日期選擇器,時間範圍設定為一週,vue中的寫法Vue
- Swift3 根據日期獲取當天零點的時間戳Swift時間戳
- golang能根據日期到了夏令(冬令)時計算夏令(冬令)時的當地時間嗎Golang
- js獲取指定時間日期和當前時間日期的相差多少時間JS
- SQL根據分組求連續範圍SQL
- mysql 查當天、本週,本月、上月資料MySql
- Js之設定日期時間 判斷日期是否在範圍內JS
- C#獲取當前日期時間(轉)C#
- php 根據給定字串時間獲取時區PHP字串
- js根據時間排序JS排序
- List根據時間排序排序
- 根據時差獲取世界各地日期時間程式碼例項
- 使用 Carbon 獲取指定時間範圍內的日期陣列陣列
- mongodb中如何設定當前時間?MongoDB
- 根據某個查詢條件的前50條資料來決定UPDATE語句的更新範圍
- carbon 計算當前時間與給定時間差
- T-sql 根據日期時間 按年份、月份、天來統計SQL
- js外掛--獲取指定時間距離當前時間狀態:上週,當前周,前天,昨天,今天,明天,後天,當前周,下週。JS
- app直播原始碼,當前使用者截止當前時間在本月的連續簽到統計APP原始碼
- element-ui 時間選擇器設定時間選擇範圍UI
- js根據IP地址獲取當前的省市JS
- 【Java】得到當前系統時間,精確到毫秒Java
- [C#]C#時間日期操作C#
- java 根據日期取得星期Java
- JS判定一個給定的時間在某個時間範圍內JS
- 直播帶貨原始碼,日期時間選擇器 選擇範圍限制原始碼
- JS判定一個給定的時間區間在哪些時間段範圍內JS
- 【java】校驗當前時間是否在規定的時間內Java
- android 根據設定的日期獲取星期幾Android
- uniapp 周選擇範圍時間APP
- 程式碼段——C#判斷時間是否在某個範圍C#
- jQuery將當前陣列根據一定規則轉為其他陣列jQuery陣列