CSharp (C#)

Tính tuần của ngày bất kỳ trong năm? Theo chuẩn ISO 8601 và Globalization:

Làm báo cáo thường sử dụng chuẩn 1 năm có 52 tuần và được tính theo chuẩn ISO vậy khi số tuần tính theo ISO mà được 52 hay 53 thì mình cần kiểm tra lại nếu rơi vào tháng 12 thì sẽ là tuần thứ 52 còn rơi vào tháng 1 thì ta sẽ chuyển về tuần 1.

Trong SQL có hàm cung cấp  lấy tuần của ngày ra theo 2 chuẩn này:

VD: kiểm tra ngày 01/07/2022 theo định dạng MM/dd/YYYY

Theo ISO 8601:

select DATEPART(ISOWK,'2022-07-01') as WeekNumberISO
select DATEPART(ISOWK,'2021-01-01') as WeekNumberISO
select DATEPART(ISOWK,'2022-01-01') as WeekNumberISO
select DATEPART(ISOWK,'2020-12-31') as WeekNumberISO
DECLARE @Date date ='2022-01-01'
select case 
			when DATEPART(ISOWK,@Date)>51 and MONTH(@Date)=1 then 1 
			when DATEPART(ISOWK,@Date)>51 and MONTH(@Date)=12 then 52 
			else  DATEPART(ISOWK,@Date) 
		end as WeekNumberISO

Tiếp tục đọc “Tính tuần của ngày bất kỳ trong năm? Theo chuẩn ISO 8601 và Globalization:”