fix: update week calculation to use Saturday as the start of the week
All checks were successful
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 2m12s
All checks were successful
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 2m12s
This commit is contained in:
@@ -279,10 +279,13 @@ public class CalculateWeeklyBalancesCommandHandler : IRequestHandler<CalculateWe
|
|||||||
var year = int.Parse(parts[0]);
|
var year = int.Parse(parts[0]);
|
||||||
var week = int.Parse(parts[1].Replace("W", ""));
|
var week = int.Parse(parts[1].Replace("W", ""));
|
||||||
|
|
||||||
// محاسبه اولین روز هفته (شنبه)
|
// محاسبه اولین شنبه سال
|
||||||
var jan1 = new DateTime(year, 1, 1);
|
var jan1 = new DateTime(year, 1, 1);
|
||||||
var daysOffset = DayOfWeek.Saturday - jan1.DayOfWeek;
|
var jan1DayOfWeek = (int)jan1.DayOfWeek;
|
||||||
var firstSaturday = jan1.AddDays(daysOffset);
|
// اگر 1 ژانویه شنبه باشد: offset=0، اگر یکشنبه: offset=6، دوشنبه: offset=5، ...
|
||||||
|
var daysToFirstSaturday = jan1DayOfWeek == 6 ? 0 : (6 - jan1DayOfWeek + 7) % 7;
|
||||||
|
var firstSaturday = jan1.AddDays(daysToFirstSaturday);
|
||||||
|
|
||||||
var weekStart = firstSaturday.AddDays((week - 1) * 7);
|
var weekStart = firstSaturday.AddDays((week - 1) * 7);
|
||||||
var weekEnd = weekStart.AddDays(6).AddHours(23).AddMinutes(59).AddSeconds(59);
|
var weekEnd = weekStart.AddDays(6).AddHours(23).AddMinutes(59).AddSeconds(59);
|
||||||
|
|
||||||
|
|||||||
@@ -122,10 +122,12 @@ public class GetAvailableWeeksQueryHandler : IRequestHandler<GetAvailableWeeksQu
|
|||||||
private static (DateTime startDate, DateTime endDate) GetWeekRange(DateTime date)
|
private static (DateTime startDate, DateTime endDate) GetWeekRange(DateTime date)
|
||||||
{
|
{
|
||||||
var dayOfWeek = (int)date.DayOfWeek;
|
var dayOfWeek = (int)date.DayOfWeek;
|
||||||
var daysToMonday = dayOfWeek == 0 ? 6 : dayOfWeek - 1; // اگر یکشنبه باشد، 6 روز عقب برو
|
// محاسبه تعداد روزهایی که باید عقب برویم تا به شنبه برسیم
|
||||||
|
// شنبه = 6, یکشنبه = 0, دوشنبه = 1, ..., جمعه = 5
|
||||||
|
var daysToSaturday = dayOfWeek == 6 ? 0 : (dayOfWeek + 1) % 7;
|
||||||
|
|
||||||
var startDate = date.Date.AddDays(-daysToMonday);
|
var startDate = date.Date.AddDays(-daysToSaturday);
|
||||||
var endDate = startDate.AddDays(6);
|
var endDate = startDate.AddDays(6).AddHours(23).AddMinutes(59).AddSeconds(59);
|
||||||
|
|
||||||
return (startDate, endDate);
|
return (startDate, endDate);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user