diff --git a/Day/Q32024/Helper-2024-09-10.cs b/Day/Q32024/Helper-2024-09-10.cs index 4ae88ba..875b646 100644 --- a/Day/Q32024/Helper-2024-09-10.cs +++ b/Day/Q32024/Helper-2024-09-10.cs @@ -10,13 +10,16 @@ internal static partial class Helper20240910 { string day; string year; + string yearB; + string yearC; string checkFile; FileInfo fileInfo; string weekOfYear; + int weekOfYearValue; string checkDirectory; - string sourceDirectory = args[0]; + string searchPattern = args[2]; ReadOnlyCollection directoryNames; - string searchPattern = Path.GetFullPath(args[2]); + string sourceDirectory = Path.GetFullPath(args[0]); Calendar calendar = new CultureInfo("en-US").Calendar; string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories); logger.LogInformation("With search pattern '{SearchPattern}' found {files}", searchPattern, files.Length); @@ -26,17 +29,22 @@ internal static partial class Helper20240910 if (string.IsNullOrEmpty(fileInfo.DirectoryName)) continue; checkDirectory = string.Empty; - year = fileInfo.LastWriteTime.ToString("yyyy"); + year = $"{fileInfo.LastWriteTime:yyyy}"; + yearB = $"{fileInfo.LastWriteTime:yyyy}_Year"; day = fileInfo.LastWriteTime.ToString("yyyy-MM-dd"); directoryNames = Helpers.HelperDirectory.GetDirectoryNames(fileInfo.DirectoryName); - weekOfYear = $"{fileInfo.LastWriteTime.Year}_Week_{calendar.GetWeekOfYear(fileInfo.LastWriteTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday):00}"; + weekOfYearValue = calendar.GetWeekOfYear(fileInfo.LastWriteTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); + yearC = weekOfYearValue < 27 ? $"{fileInfo.LastWriteTime:yyyy}_Year_A" : $"{fileInfo.LastWriteTime:yyyy}_Year_Z"; + weekOfYear = $"{fileInfo.LastWriteTime.Year}_Week_{weekOfYearValue:00}"; foreach (string directoryName in directoryNames) { - if (directoryName == year || directoryName == weekOfYear || directoryName == day) + if (directoryName == year || directoryName == yearB || directoryName == yearC || directoryName == weekOfYear || directoryName == day) continue; checkDirectory = Path.Combine(checkDirectory, directoryName); } - checkDirectory = Path.Combine(checkDirectory, year, weekOfYear, day); + if (string.IsNullOrEmpty(checkDirectory)) + continue; + checkDirectory = Path.Combine(checkDirectory, yearC, weekOfYear, day); if (!Directory.Exists(checkDirectory)) _ = Directory.CreateDirectory(checkDirectory); checkFile = Path.Combine(checkDirectory, fileInfo.Name);