Example #1
0
        public static long DateDiff(DateInterval interval, DateTime dt1, DateTime dt2, DayOfWeek eFirstDayOfWeek)
        {
            long month;

            if (interval == DateInterval.Year)
            {
                month = (long)(dt2.Year - dt1.Year);
            }
            else if (interval != DateInterval.Month)
            {
                TimeSpan timeSpan = dt2 - dt1;
                if ((interval == DateInterval.Day ? true : interval == DateInterval.DayOfYear))
                {
                    month = DateAndTime.Round(timeSpan.TotalDays);
                }
                else if (interval == DateInterval.Hour)
                {
                    month = DateAndTime.Round(timeSpan.TotalHours);
                }
                else if (interval == DateInterval.Minute)
                {
                    month = DateAndTime.Round(timeSpan.TotalMinutes);
                }
                else if (interval == DateInterval.Second)
                {
                    month = DateAndTime.Round(timeSpan.TotalSeconds);
                }
                else if (interval == DateInterval.Weekday)
                {
                    month = DateAndTime.Round(timeSpan.TotalDays / 7);
                }
                else if (interval == DateInterval.WeekOfYear)
                {
                    while (dt2.DayOfWeek != eFirstDayOfWeek)
                    {
                        dt2 = dt2.AddDays(-1);
                    }
                    while (dt1.DayOfWeek != eFirstDayOfWeek)
                    {
                        dt1 = dt1.AddDays(-1);
                    }
                    timeSpan = dt2 - dt1;
                    month    = DateAndTime.Round(timeSpan.TotalDays / 7);
                }
                else if (interval == DateInterval.Quarter)
                {
                    double quarter = (double)DateAndTime.GetQuarter(dt1.Month);
                    double num     = (double)DateAndTime.GetQuarter(dt2.Month);
                    double num1    = num - quarter;
                    double year    = (double)(4 * (dt2.Year - dt1.Year));
                    month = DateAndTime.Round(num1 + year);
                }
                else
                {
                    month = (long)0;
                }
            }
            else
            {
                month = (long)(dt2.Month - dt1.Month + 12 * (dt2.Year - dt1.Year));
            }
            return(month);
        }
Example #2
0
        public static long DateDiff(DateInterval interval, DateTime dt1, DateTime dt2)
        {
            long num = DateAndTime.DateDiff(interval, dt1, dt2, DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek);

            return(num);
        }