public static void Main()
var searchDate = new DateTime(2025, 2, 1);
var originalBeginDate = new DateTime(2024, 2, 29);
var beginDateLoop = Loop(originalBeginDate, searchDate);
var beginDateMax = Max(originalBeginDate, searchDate);
Console.WriteLine(beginDateMax);
Console.WriteLine(beginDateLoop);
private static DateTime Max(DateTime originalBeginDate, DateTime searchDate)
var currentDate = DateTime.Now;
var maxYear = ( currentDate.Year >= searchDate.Year) ? currentDate.Year : searchDate.Year;
originalBeginDate = originalBeginDate.AddYears(maxYear-originalBeginDate.Year);
return originalBeginDate;
private static DateTime Loop(DateTime originalBeginDate, DateTime searchDate)
var currentDate = DateTime.Now;
var beginDate = originalBeginDate;
while (beginDate < currentDate || beginDate < searchDate)
beginDate = beginDate.AddYears(1);