Esempio n. 1
0
        public long DateDiff(c.DateInterval intervalType, DateTime dateOne, DateTime dateTwo)
        {
            switch (intervalType)
            {
            case c.DateInterval.Day:
            case c.DateInterval.DayOfYear:
                TimeSpan spanForDays = dateTwo - dateOne;
                return((long)spanForDays.TotalDays);

            case c.DateInterval.Hour:
                TimeSpan spanForHours = dateTwo - dateOne;
                return((long)spanForHours.TotalHours);

            case c.DateInterval.Minute:
                TimeSpan spanForMinutes = dateTwo - dateOne;
                return((long)spanForMinutes.TotalMinutes);

            case c.DateInterval.Month:
                return(((dateTwo.Year - dateOne.Year) * 12) + (dateTwo.Month - dateOne.Month));

            case c.DateInterval.Quarter:
                long dateOneQuarter = (long)Math.Ceiling(dateOne.Month / 3.0);
                long dateTwoQuarter = (long)Math.Ceiling(dateTwo.Month / 3.0);
                return((4 * (dateTwo.Year - dateOne.Year)) + dateTwoQuarter - dateOneQuarter);

            case c.DateInterval.Second:
                TimeSpan spanForSeconds = dateTwo - dateOne;
                return((long)spanForSeconds.TotalSeconds);

            case c.DateInterval.Weekday:
                TimeSpan spanForWeekdays = dateTwo - dateOne;
                return((long)(spanForWeekdays.TotalDays / 7.0));

            case c.DateInterval.WeekOfYear:
                DateTime dateOneModified = dateOne;
                DateTime dateTwoModified = dateTwo;
                while (dateTwoModified.DayOfWeek != DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek)
                {
                    dateTwoModified = dateTwoModified.AddDays(-1);
                }
                while (dateOneModified.DayOfWeek != DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek)
                {
                    dateOneModified = dateOneModified.AddDays(-1);
                }
                TimeSpan spanForWeekOfYear = dateTwoModified - dateOneModified;
                return((long)(spanForWeekOfYear.TotalDays / 7.0));

            case c.DateInterval.Year:
                return(dateTwo.Year - dateOne.Year);

            default:
                return(0);
            }
        }
Esempio n. 2
0
        public long DateDiff(c.DateInterval intervalType, string sDateOne, string sDateTwo)
        {
            DateTime t1;
            DateTime t2;

            if (!IsDate2(sDateOne) || !IsDate2(sDateTwo))
            {
                return(0);
            }

            t1 = StringToDate(sDateOne);
            t2 = StringToDate(sDateTwo);

            return(DateDiff(intervalType, t1, t2));
        }