fix: update week calculation to start from Saturday
All checks were successful
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 2m2s
All checks were successful
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 2m2s
This commit is contained in:
@@ -110,13 +110,34 @@ public class GetAvailableWeeksQueryHandler : IRequestHandler<GetAvailableWeeksQu
|
||||
|
||||
private static string GetWeekNumber(DateTime date)
|
||||
{
|
||||
var calendar = CultureInfo.InvariantCulture.Calendar;
|
||||
var weekOfYear = calendar.GetWeekOfYear(
|
||||
date,
|
||||
CalendarWeekRule.FirstDay,
|
||||
DayOfWeek.Saturday);
|
||||
var year = date.Year;
|
||||
|
||||
return $"{date.Year}-W{weekOfYear:D2}";
|
||||
// پیدا کردن اولین شنبه سال
|
||||
var jan1 = new DateTime(year, 1, 1);
|
||||
var jan1DayOfWeek = (int)jan1.DayOfWeek; // 0=Sunday, 1=Monday, ..., 6=Saturday
|
||||
|
||||
// محاسبه تعداد روزهایی که باید اضافه کنیم تا به اولین شنبه برسیم
|
||||
var daysToFirstSaturday = jan1DayOfWeek == 6 ? 0 : (6 - jan1DayOfWeek + 7) % 7;
|
||||
var firstSaturday = jan1.AddDays(daysToFirstSaturday);
|
||||
|
||||
// پیدا کردن شنبه شروع هفته جاری
|
||||
var currentDayOfWeek = (int)date.DayOfWeek; // 0=Sun, 1=Mon, ..., 6=Sat
|
||||
var daysToCurrentSaturday = currentDayOfWeek == 6 ? 0 : (currentDayOfWeek + 1) % 7;
|
||||
var weekStartSaturday = date.Date.AddDays(-daysToCurrentSaturday);
|
||||
|
||||
// محاسبه شماره هفته
|
||||
int weekNum;
|
||||
if (weekStartSaturday < firstSaturday)
|
||||
{
|
||||
weekNum = 1; // هفته اول سال
|
||||
}
|
||||
else
|
||||
{
|
||||
var daysSinceFirstSaturday = (weekStartSaturday - firstSaturday).Days;
|
||||
weekNum = (daysSinceFirstSaturday / 7) + 1;
|
||||
}
|
||||
|
||||
return $"{year}-W{weekNum:D2}";
|
||||
}
|
||||
|
||||
private static (DateTime startDate, DateTime endDate) GetWeekRange(DateTime date)
|
||||
|
||||
Reference in New Issue
Block a user