using System.Globalization;
HebrewCalendar hebrewCalendar = new HebrewCalendar();
DateTime start = new DateTime(2025, 3, 20);
DateTime end = new DateTime(2027, 3, 20);
Console.WriteLine("תאריך לועזי -> תאריך עברי");
for (DateTime date = start; date <= end; date = date.AddMonths(1))
int hebrewYear = hebrewCalendar.GetYear(date);
int hebrewMonth = hebrewCalendar.GetMonth(date);
int hebrewDay = hebrewCalendar.GetDayOfMonth(date);
bool isLeapYear = hebrewCalendar.IsLeapYear(hebrewYear);
string hebrewMonthName = GetHebrewMonthName(hebrewMonth, isLeapYear);
Console.WriteLine($"{date:yyyy-MM-dd} -> {hebrewDay} {hebrewMonthName} {hebrewYear}");
static string GetHebrewMonthName(int month, bool isLeapYear)
string[] regularMonths = {
"תשרי", "חשוון", "כסלו", "טבת", "שבט",
"אדר", "ניסן", "אייר", "סיון", "תמוז", "אב", "אלול"
"תשרי", "חשוון", "כסלו", "טבת", "שבט",
"אדר א", "אדר ב", "ניסן", "אייר", "סיון", "תמוז", "אב", "אלול"
return isLeapYear ? leapMonths[month - 1] : regularMonths[month - 1];