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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 根據時間範圍呼叫gitLab介面查詢Gitlab
- Mysql獲取當天,昨天,本週,本月,上週,上月的起始時間MySql
- Oracle日期時間範圍查詢Oracle
- layui laydate日期時間範圍,時間預設設定為23:59:59UI
- element日期選擇器,時間範圍設定為一週,vue中的寫法Vue
- 獲取當前時間往前的日期
- Js之設定日期時間 判斷日期是否在範圍內JS
- mysql 查當天、本週,本月、上月資料MySql
- php 根據給定字串時間獲取時區PHP字串
- List根據時間排序排序
- js根據時間排序JS排序
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- 使用 Carbon 獲取指定時間範圍內的日期陣列陣列
- mongodb中如何設定當前時間?MongoDB
- 根據某個查詢條件的前50條資料來決定UPDATE語句的更新範圍
- [C#]C#時間日期操作C#
- python - 生成時間範圍Python
- app直播原始碼,當前使用者截止當前時間在本月的連續簽到統計APP原始碼
- js外掛--獲取指定時間距離當前時間狀態:上週,當前周,前天,昨天,今天,明天,後天,當前周,下週。JS
- element-ui 時間選擇器設定時間選擇範圍UI
- js根據IP地址獲取當前的省市JS
- 獲取當前周、上一週、下一週日期
- dcat-admin 統計修改時間選擇器 日期範圍查詢
- 直播帶貨原始碼,日期時間選擇器 選擇範圍限制原始碼
- JS判定一個給定的時間在某個時間範圍內JS
- JS判定一個給定的時間區間在哪些時間段範圍內JS
- 【java】校驗當前時間是否在規定的時間內Java
- 程式碼段——C#判斷時間是否在某個範圍C#
- VUE elementUI calendar 根據日期段標記日期VueUI
- 根據兩個日期之間獲取LocalDate日曆列表LDA
- Android開發:獲取當前系統時間和日期的方法Android
- uniapp 周選擇範圍時間APP
- QT顯示當前日期時間QT
- Qt中利用定時器QTimer實時顯示當前日期和時間QT定時器
- 獲取當前時間
- mysql中取系統當前時間,當前日期方便查詢判定的程式碼MySql
- 查詢時間從前7天到當前時間
- 《Qt5+QDate和QTime獲取當前系統日期和時間》QT
- SAP CDS view如何取得當前系統日期和系統時間戳View時間戳