示例#1
0
        ///<summary>Creates a Hebrew date from an English one.</summary>
        ///<param name="englishDate">The English date to convert.</param>
        public HebrewDate(DateTime englishDate)
        {
            date = englishDate.Date;

            hebrewYear  = calendar.GetYear(date);
            hebrewMonth = CalendarExtensions.ToHebrewMonth(hebrewYear, calendar.GetMonth(date));
            hebrewDay   = calendar.GetDayOfMonth(englishDate);
        }
示例#2
0
 ///<summary>Gets the length of a Hebrew month.</summary>
 ///<param name="month">The month.</param>
 ///<param name="hebrewYear">The year.</param>
 ///<returns>The number of days in the month.</returns>
 public static int Length(this HebrewMonth month, int hebrewYear)
 {
     if (month == 0)
     {
         throw new ArgumentOutOfRangeException("month", "None is not a valid month.");
     }
     return(calendar.GetDaysInMonth(hebrewYear, month.Index(hebrewYear)));
 }
示例#3
0
        ///<summary>Gets the name of the given month in the given Hebrew year.</summary>
        ///<param name="month">The Hebrew month.</param>
        ///<param name="hebrewYear">The Hebrew year (for leap years).</param>
        ///<returns>The name of the month.</returns>
        public static string ToString(this HebrewMonth month, int hebrewYear)
        {
            switch (month)
            {
            case 0: throw new ArgumentOutOfRangeException("month", "None is not a valid month.");

            case HebrewMonth.אדר1: return(calendar.IsLeapYear(hebrewYear) ? "אדר א" : "אדר");

            case HebrewMonth.אדר2: return(calendar.IsLeapYear(hebrewYear) ? "אדר ב" : "אדר");

            default: return(month.ToString());
            }
        }
示例#4
0
        ///<summary>Creates a Hebrew date.</summary>
        ///<param name="hebrewYear">The Hebrew year.</param>
        ///<param name="month">The Hebrew month.</param>
        ///<param name="day">The Hebrew day of the month.</param>
        public HebrewDate(int hebrewYear, HebrewMonth month, int day)
        {
            if (month == 0)
            {
                throw new ArgumentOutOfRangeException("month", "None is not a valid month.");
            }
            this.hebrewYear = hebrewYear;

            if (!calendar.IsLeapYear(hebrewYear) && month == HebrewMonth.אדר1)
            {
                month = HebrewMonth.אדר2;
            }

            hebrewMonth = month;
            hebrewDay   = day;
            date        = calendar.ToDateTime(hebrewYear, month.Index(hebrewYear), day, 0, 0, 0, 0);
        }
示例#5
0
 ///<summary>Creates a HebrewDayOfYear.</summary>
 ///<param name="month">The Hebrew month.</param>
 ///<param name="day">The Hebrew day.</param>
 public HebrewDayOfYear(HebrewMonth month, int day)
     : this()
 {
     if (month == HebrewMonth.None)
     {
         throw new ArgumentOutOfRangeException("month", "None is not a valid month");
     }
     if (day <= 0)
     {
         throw new ArgumentOutOfRangeException("day");
     }
     if (day > 30 || (day == 30 && (month == HebrewMonth.טבת || month == HebrewMonth.אדר2 || month == HebrewMonth.אייר || month == HebrewMonth.תמוז || month == HebrewMonth.אלול)))
     {
         throw new ArgumentOutOfRangeException("day");
     }
     Month = month;
     Day   = day;
 }
示例#6
0
        ///<summary>Creates a NonשבתEvent.</summary>
        ///<param name="month">The month that the event occurs on.</param>
        ///<param name="normalDay">The day of the month that this event normally occurs on.</param>
        ///<param name="fallback">The day of the week that this event occurs on instead of שבת.</param>
        public NonשבתEvent(HebrewMonth month, int normalDay, DayOfWeek fallback)
            : this()
        {
            if (month == HebrewMonth.None)
            {
                throw new ArgumentOutOfRangeException("month", "None is not a valid month");
            }
            if (normalDay <= 0 ||
                normalDay > 30 ||
                (normalDay == 30 && (month == HebrewMonth.טבת || month == HebrewMonth.אדר2 || month == HebrewMonth.אייר || month == HebrewMonth.תמוז || month == HebrewMonth.אלול)))
            {
                throw new ArgumentOutOfRangeException("normalDay");
            }
            if (fallback == DayOfWeek.Saturday)
            {
                throw new ArgumentOutOfRangeException("fallback", "Fallback cannot be שבת");
            }

            Month     = month;
            NormalDay = normalDay;
            Fallback  = fallback;
        }
示例#7
0
 ///<summary>Gets the index of a month in year.</summary>
 ///<param name="month">The name of the month.</param>
 ///<param name="hebrewYear">The year to check.</param>
 ///<returns>The month number within the year.  (Can be given to .Net HebrewCalendars)</returns>
 public static int Index(this HebrewMonth month, int hebrewYear)
 {
     return(Index(hebrewYear, (int)month));
 }
示例#8
0
 ///<summary>Creates a SpecialשבתEvent from a month and day.</summary>
 ///<param name="month">The month of the earliest date that this שבת can occur.</param>
 ///<param name="day">The date of the earliest date that this שבת can occur.</param>
 public SpecialשבתEvent(HebrewMonth month, int day) : this(new HebrewDayOfYear(month, day))
 {
 }
示例#9
0
 private Holiday(string name, HebrewMonth month, int day, HolidayCategory category) : this(name, new HebrewDayOfYear(month, day), category)
 {
 }