Beispiel #1
0
        public static DateInfo OffsetByWeekAfter(DateInfo dt, DayOfWeek dayOfWeek)
        {
            var daysNeeded = (int)dayOfWeek - (int)dt.DayOfWeek;

            return((int)dayOfWeek >= (int)dt.DayOfWeek
                ? dt.AddDays(daysNeeded)
                : dt.AddDays(daysNeeded + 7));
        }
Beispiel #2
0
        public static DateInfo OffsetByWeekBefore(DateInfo dt, DayOfWeek dayOfWeek)
        {
            var daysSubtract = (int)dayOfWeek - (int)dt.DayOfWeek;

            return((int)dayOfWeek < (int)dt.DayOfWeek
                ? dt.AddDays(daysSubtract)
                : dt.AddDays(daysSubtract - 7));
        }
        /// <summary>
        /// Get last day of this week
        /// </summary>
        /// <param name="d"></param>
        /// <param name="cultureInfo"></param>
        /// <returns></returns>
        public static DateInfo GetLastDayInfoOfWeek(this DateInfo d, CultureInfo cultureInfo)
        {
            cultureInfo = (cultureInfo ?? CultureInfo.CurrentCulture);
            var firstDayOfWeek = cultureInfo.DateTimeFormat.FirstDayOfWeek;

            while (d.DayOfWeek != firstDayOfWeek)
            {
                d = d.AddDays(-1);
            }
            return(d.AddDays(6));
        }
 /// <summary>
 /// Get previous weekday.
 /// </summary>
 /// <param name="d"></param>
 /// <param name="weekday"></param>
 /// <returns></returns>
 public static DateInfo GetPreviousWeekdayInfo(this DateInfo d, DayOfWeek weekday)
 {
     while (d.DayOfWeek != weekday)
     {
         d = d.AddDays(-1);
     }
     return(d);
 }
        /// <summary>
        /// Add business days<br />
        /// 添加指定个数量的工作日
        /// </summary>
        /// <param name="d"></param>
        /// <param name="days"></param>
        /// <returns></returns>
        public static DateInfo AddBusinessDays(this DateInfo d, int days)
        {
            var sign         = Math.Sign(days);
            var unsignedDays = Math.Abs(days);

            for (var i = 0; i < unsignedDays; i++)
            {
                do
                {
                    d = d.AddDays(sign);
                } while (d.DayOfWeek == DayOfWeek.Saturday ||
                         d.DayOfWeek == DayOfWeek.Sunday);
            }

            return(d);
        }
 public static DateInfo AddWeeks(this DateInfo d, int weeks) => d.AddDays(weeks * 7);
Beispiel #7
0
 /// <summary>
 /// Get yesterday<br />
 /// 前一天
 /// </summary>
 /// <param name="d"></param>
 /// <returns></returns>
 public static DateInfo Yesterday(this DateInfo d) => d.AddDays(-1);
Beispiel #8
0
 /// <summary>
 /// Add one day<br />
 /// 加一天
 /// </summary>
 /// <param name="d"></param>
 /// <returns></returns>
 public static DateInfo AddDay(this DateInfo d) => d.AddDays(1);