Esempio n. 1
0
        public DateTime GetDayOfWeekDateForWeek(int week, DayOfWeek dayOfWeek)
        {
            Checks.InRange(1, 5, week, $"{week} is out of range in month {_month.GetName()} of Year {_year.GetYear()}");

            var daysUtilFirstDayOfThisWeek = 1 + (week - 1) * 7;
            var dateTime           = new DateTime(_year.GetYear(), _month.GetMonth(), daysUtilFirstDayOfThisWeek);
            var firstDayOfThisWeek = dateTime.DayOfWeek;

            var intOfDayOfWeek          = dayOfWeek.GetInt();
            var intOfFirstDayOfThisWeek = firstDayOfThisWeek.GetInt();

            var days = intOfDayOfWeek >= intOfFirstDayOfThisWeek
                     ? intOfDayOfWeek - intOfFirstDayOfThisWeek
                     : intOfDayOfWeek - intOfFirstDayOfThisWeek + 7
            ;

            Checks.LessThanOrEqual <ArgumentOutOfRangeException>(TotalDays, days + 1, $"{dayOfWeek} doesn't exist in {week} week(s) of {_month.GetName()} {_year}");
            return(dateTime.AddDays(days));
        }
Esempio n. 2
0
 /// <summary>
 /// Construct MonthOfYear by specified Month and this Year
 /// </summary>
 /// <param name="month">Month</param>
 /// <returns>MonthOfYear</returns>
 public MonthOfYear ForMonth(Month month)
 {
     return(MonthOfYear.Of(Month.Of(month.GetMonth()), Of(_year)));
 }
Esempio n. 3
0
 public static DateTime Of(int year, Month month, int day, DateTimeKind kind)
 {
     return(DateTime.SpecifyKind(new DateTime(Year.CheckRange(year), month.GetMonth(), month.CheckRange(day, year)), kind));
 }
Esempio n. 4
0
 public static DayOfMonth Of(int day, Month month)
 {
     return(new DayOfMonth(day, month.GetMonth(), 0));
 }