[Test, Timeout(300000)] // Can take a long time under NCrunch. public void BclThroughHistory_Scriptural() { Calendar bcl = new HebrewCalendar(); var noda = CalendarSystem.HebrewScriptural; // The min supported date/time starts part way through the year var minYear = bcl.GetYear(bcl.MinSupportedDateTime) + 1; // The max supported date/time ends part way through the year var maxYear = bcl.GetYear(bcl.MaxSupportedDateTime) - 1; // Can't use BclEquivalenceHelper for this one, because of the month conversions. for (int year = minYear; year <= maxYear; year++) { int months = bcl.GetMonthsInYear(year); Assert.AreEqual(months, noda.GetMonthsInYear(year)); for (int civilMonth = 1; civilMonth <= months; civilMonth++) { int scripturalMonth = HebrewMonthConverter.CivilToScriptural(year, civilMonth); Assert.AreEqual(bcl.GetDaysInMonth(year, civilMonth), noda.GetDaysInMonth(year, scripturalMonth), "Year: {0}; Month: {1} (civil)", year, civilMonth); for (int day = 1; day < bcl.GetDaysInMonth(year, civilMonth); day++) { DateTime bclDate = new DateTime(year, civilMonth, day, bcl); LocalDate nodaDate = new LocalDate(year, scripturalMonth, day, noda); Assert.AreEqual(bclDate, nodaDate.AtMidnight().ToDateTimeUnspecified(), "{0}-{1}-{2}", year, scripturalMonth, day); Assert.AreEqual(nodaDate, LocalDateTime.FromDateTime(bclDate, noda).Date); Assert.AreEqual(year, nodaDate.Year); Assert.AreEqual(scripturalMonth, nodaDate.Month); Assert.AreEqual(day, nodaDate.Day); } } } }
static void Main() { var dtfi = new CultureInfo("he-IL").DateTimeFormat; var calendar = new HebrewCalendar(); dtfi.Calendar = calendar; var lines = from year in Enumerable.Range(5775, 2) from month in Enumerable.Range(1, calendar.GetMonthsInYear(year)) select string.Format(dtfi, "{0}-{1}: {2:MMMM}", year, month, new DateTime(year, month, 1, calendar)); FormHelper.ShowText(lines); }
static void Main() { var dtfi = new CultureInfo("he-IL").DateTimeFormat; var calendar = new HebrewCalendar(); dtfi.Calendar = calendar; dtfi.MonthNames = new[] { "Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "Adar", "Adar II", "Nisan", "Iyar", "Sivan", "Tamuz", "Av", "Elul" }; var lines = from year in Enumerable.Range(5775, 2) from month in Enumerable.Range(1, calendar.GetMonthsInYear(year)) select string.Format(dtfi, "{0}-{1}: {2:MMMM}", year, month, new DateTime(year, month, 1, calendar)); FormHelper.ShowText(lines); }
public IEnumerable<ComplexZmanimCalendar> GetDaysInHebrewYear(DateTime year, GeoLocation location) { Calendar calendar = new HebrewCalendar(); var currentYear = calendar.GetYear(year); var amountOfMonths = calendar.GetMonthsInYear(currentYear); for (int i = 0; i < amountOfMonths; i++) { var currentMonth = i + 1; var daysInMonth = calendar.GetDaysInMonth(currentYear, currentMonth); for (int dayOfMonth = 0; dayOfMonth < daysInMonth; dayOfMonth++) { var zmanimCalendar = new ComplexZmanimCalendar(location); zmanimCalendar.DateWithLocation.Date = new DateTime(currentYear, currentMonth, dayOfMonth + 1, calendar); yield return zmanimCalendar; } } }
public void DaysInMonth() { var bcl = new HebrewCalendar(); // Not all months in the min/max years are supported var minYear = bcl.GetYear(bcl.MinSupportedDateTime) + 1; var maxYear = bcl.GetYear(bcl.MaxSupportedDateTime) - 1; for (int year = minYear; year <= maxYear; year++) { int months = bcl.GetMonthsInYear(year); for (int month = 1; month <= months; month++) { int scripturalMonth = HebrewMonthConverter.CivilToScriptural(year, month); int bclDays = bcl.GetDaysInMonth(year, month); int nodaDays = HebrewScripturalCalculator.DaysInMonth(year, scripturalMonth); Assert.AreEqual(bclDays, nodaDays); } } }