diff --git a/YD_YiLu/Services/Impl/DeviceSyncService.cs b/YD_YiLu/Services/Impl/DeviceSyncService.cs index ab16336..e1f3b7b 100644 --- a/YD_YiLu/Services/Impl/DeviceSyncService.cs +++ b/YD_YiLu/Services/Impl/DeviceSyncService.cs @@ -1443,18 +1443,36 @@ namespace YD_YiLu.Api.Services.Impl private static bool IsYtpSummaryDateType(int dateType) { - return dateType == 4 || dateType == 9; + return dateType == 1 || dateType == 2 || dateType == 3 || dateType == 4 || dateType == 9; } private static string GetYtpSummaryTime(int dateType) { - if (dateType == 9) - return DateTime.Now.Year.ToString(); + var today = DateTime.Now.Date; + var weekStart = GetWeekStart(today); + var monthStart = new DateTime(today.Year, today.Month, 1); - var (start, end) = GetCurrentSemesterRange(DateTime.Now.Date); + switch (dateType) + { + case 1: + return today.ToString("yyyy-MM-dd"); + case 2: + return $"{weekStart:MM-dd}~{weekStart.AddDays(6):MM-dd}"; + case 3: + return monthStart.AddMonths(1).AddDays(-1).ToString("MM-dd"); + case 9: + return today.Year.ToString(); + } + + var (start, end) = GetCurrentSemesterRange(today); return $"{start:MM-dd}~{end:MM-dd}"; } + private static DateTime GetWeekStart(DateTime today) + { + return today.AddDays(-(((int)today.DayOfWeek + 6) % 7)); + } + private static (DateTime start, DateTime end) GetCurrentSemesterRange(DateTime today) { if (today.Month >= 2 && today.Month <= 8) @@ -1469,20 +1487,20 @@ namespace YD_YiLu.Api.Services.Impl private static (DateTime? start, DateTime? end) GetDateRange(int dateType, string queryStart, string queryEnd) { var today = DateTime.Now.Date; - var weekStart = today.AddDays(-(((int)today.DayOfWeek + 6) % 7)); + var weekStart = GetWeekStart(today); var monthStart = new DateTime(today.Year, today.Month, 1); (DateTime? start, DateTime? end) result = dateType switch { 0 => ((DateTime?)null, (DateTime?)null), 1 => (today, today), - 2 => (weekStart, today), - 3 => (monthStart, today), + 2 => (weekStart, weekStart.AddDays(6)), + 3 => (monthStart, monthStart.AddMonths(1).AddDays(-1)), 4 => GetCurrentSemesterRange(today), 5 => (DateTime.TryParse(queryStart, out var s) ? s : (DateTime?)null, DateTime.TryParse(queryEnd, out var e) ? e : (DateTime?)null), 6 => (weekStart.AddDays(-7), weekStart.AddDays(-1)), 7 => (monthStart.AddMonths(-1), monthStart.AddDays(-1)), 8 => (today.AddMonths(-3), today), - 9 => (new DateTime(today.Year, 1, 1), today), + 9 => (new DateTime(today.Year, 1, 1), new DateTime(today.Year, 12, 31)), _ => ((DateTime?)null, (DateTime?)null) };