Exemple #1
0
        public void IncludeExcludeTest()
        {
            DateAdd dateAdd = new DateAdd();

            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 17), new DateTime(2011, 4, 20)));

            // setup some periods to exclude
            dateAdd.ExcludePeriods.Add(new TimeRange(
                                           new DateTime(2011, 3, 22), new DateTime(2011, 3, 25)));
            dateAdd.ExcludePeriods.Add(new TimeRange(
                                           new DateTime(2011, 4, 1), new DateTime(2011, 4, 7)));
            dateAdd.ExcludePeriods.Add(new TimeRange(
                                           new DateTime(2011, 4, 15), new DateTime(2011, 4, 16)));

            // positive
            DateTime periodStart = new DateTime(2011, 3, 19);

            Assert.Equal(dateAdd.Add(periodStart, Duration.Hours(1)), new DateTime(2011, 3, 19, 1, 0, 0));
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(4)), new DateTime(2011, 3, 26, 0, 0, 0));
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(17)), new DateTime(2011, 4, 14));
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(20)), new DateTime(2011, 4, 18));
            Assert.Null(dateAdd.Add(periodStart, Duration.Days(22)));

            // negative
            DateTime periodEnd = new DateTime(2011, 4, 18);

            Assert.Equal(dateAdd.Add(periodEnd, Duration.Hours(-1)), new DateTime(2011, 4, 17, 23, 0, 0));
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-4)), new DateTime(2011, 4, 13));
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-17)), new DateTime(2011, 3, 22));
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-20)), new DateTime(2011, 3, 19));
            Assert.Null(dateAdd.Add(periodEnd, Duration.Days(-22)));
        }         // IncludeExcludeTest
Exemple #2
0
        public void ExcludePeriodTest()
        {
            DateAdd dateAdd = new DateAdd();

            // include periods
            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2013, 1, 1, 8, 0, 0), new DateTime(2013, 1, 1, 12, 0, 0)));
            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2013, 1, 1, 13, 0, 0), new DateTime(2013, 1, 1, 17, 0, 0)));

            // exclude interval
            TimeInterval interval = new TimeInterval(TimeSpec.MinPeriodDate, new DateTime(2013, 1, 1, 14, 0, 0),
                                                     IntervalEdge.Closed, IntervalEdge.Open);

            dateAdd.ExcludePeriods.Add(interval);
            DateTime?result = dateAdd.Add(dateAdd.IncludePeriods.Start, TimeSpan.FromHours(2), SeekBoundaryMode.Fill);

            Assert.NotNull(result);
            Assert.Equal(result, new DateTime(2013, 1, 1, 16, 0, 0).AddTicks(-1));

            // exclude time range
            dateAdd.ExcludePeriods.Clear();
            dateAdd.ExcludePeriods.Add(new TimeRange(interval.StartInterval, interval.EndInterval));
            result = dateAdd.Add(dateAdd.IncludePeriods.Start, TimeSpan.FromHours(2), SeekBoundaryMode.Fill);
            Assert.NotNull(result);
            Assert.Equal(result, new DateTime(2013, 1, 1, 16, 0, 0));
        } // ExcludePeriodTest
        public ActionResult Edit(DateAdd dateAdd)
        {
            ApplicationDbContext db = new ApplicationDbContext();
            DateAdd editDate        = db.DateAdd.Where(e => e.ID == dateAdd.ID).First();

            //editDate.CurrentDate = DateTime.Now;
            editDate.CurrentDate = dateAdd.CurrentDate;
            editDate.FutureDate  = dateAdd.FutureDate;
            db.SaveChanges();
            return(RedirectToAction("EditDate", "Customer"));
        }
Exemple #4
0
        public void AllExcluded3Test()
        {
            DateTime test = new DateTime(2011, 4, 12);

            DateAdd dateAdd = new DateAdd();

            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 4, 10), new DateTime(2011, 4, 20)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 4, 15), new DateTime(2011, 4, 20)));

            Assert.Null(dateAdd.Add(test, new TimeSpan(3, 0, 0, 0)));
        }         // AllExcluded3Test
        public ActionResult Edit(int id)
        {
            ApplicationDbContext db = new ApplicationDbContext();
            DateAdd editDate        = db.DateAdd.Where(d => d.ID == id).First();
            DateAdd dateAdd         = new DateAdd();

            dateAdd.CurrentDate = editDate.CurrentDate;
            dateAdd.FutureDate  = editDate.FutureDate;

            return(View(dateAdd));
        }
Exemple #6
0
        public void IncludeTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange = new TimeRange(new DateTime(2011, 4, 1), DateTime.MaxValue);
            DateAdd   dateAdd   = new DateAdd();

            dateAdd.IncludePeriods.Add(timeRange);

            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(1, 0, 0, 0)), test.Add(new TimeSpan(1, 0, 0, 0)));
        }         // IncludeTest
Exemple #7
0
        public void AllExcludedTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange = new TimeRange(new DateTime(2011, 4, 10), new DateTime(2011, 4, 20));
            DateAdd   dateAdd   = new DateAdd();

            dateAdd.IncludePeriods.Add(timeRange);
            dateAdd.ExcludePeriods.Add(timeRange);

            Assert.Null(dateAdd.Add(test, TimeSpan.Zero));
        }         // AllExcludedTest
        }         // Week

        // ----------------------------------------------------------------------
        public DateTime CalculateNextStateChange(DateTime moment, WorkingState state)
        {
            DateTime?nextDate = null;

            while (nextDate.HasValue == false)
            {
                ITimePeriod           weekPeriod         = week.GetWeekPeriod(moment);
                ITimePeriodCollection weekExcludePeriods = GetWeekExcludePeriods(moment);

                // setup moment for the next search
                ITimePeriod nextExcludePeriod = FindNextPeriod(weekExcludePeriods, moment);
                if (nextExcludePeriod == null)
                {
                    moment = weekPeriod.End;
                    continue;
                }
                moment = nextExcludePeriod.End;

                // search next availabe date by adding zero
                DateAdd dateAdd = new DateAdd();
                dateAdd.IncludePeriods.Add(weekPeriod);
                dateAdd.ExcludePeriods.AddAll(weekExcludePeriods);

                // calculate the next avialable time
                nextDate = dateAdd.Add(moment, TimeSpan.Zero);
                if (!nextDate.HasValue)                   // not found in this week
                {
                    moment = weekPeriod.End.AddTicks(1);
                    continue;
                }

                switch (state)
                {
                case WorkingState.On:
                    break;

                case WorkingState.Off:
                    ITimePeriod nextPeriod = FindSuccessorPeriod(weekExcludePeriods, nextDate.Value);
                    if (nextPeriod == null)                               // search in next week
                    {
                        nextDate = null;
                        moment   = weekPeriod.End.AddTicks(1);
                    }
                    else
                    {
                        nextDate = nextPeriod.Start;
                    }
                    break;
                }
            }

            return(nextDate.Value);
        }         // CalculateNextStateChange
Exemple #9
0
        public void NoPeriodsTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            DateAdd dateAdd = new DateAdd();

            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(1, 0, 0, 0)), test.Add(new TimeSpan(1, 0, 0, 0)));
            Assert.Equal(dateAdd.Add(test, new TimeSpan(-1, 0, 0, 0)), test.Add(new TimeSpan(-1, 0, 0, 0)));
            Assert.Equal(dateAdd.Subtract(test, new TimeSpan(1, 0, 0, 0)), test.Subtract(new TimeSpan(1, 0, 0, 0)));
            Assert.Equal(dateAdd.Subtract(test, new TimeSpan(-1, 0, 0, 0)), test.Subtract(new TimeSpan(-1, 0, 0, 0)));
        }         // NoPeriodsTest
Exemple #10
0
        // ----------------------------------------------------------------------
        public void DateAddSample()
        {
            DateAdd dateAdd = new DateAdd();

            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 17), new DateTime(2011, 4, 20)));

            // setup some periods to exclude
            dateAdd.ExcludePeriods.Add(new TimeRange(
                                           new DateTime(2011, 3, 22), new DateTime(2011, 3, 25)));
            dateAdd.ExcludePeriods.Add(new TimeRange(
                                           new DateTime(2011, 4, 1), new DateTime(2011, 4, 7)));
            dateAdd.ExcludePeriods.Add(new TimeRange(
                                           new DateTime(2011, 4, 15), new DateTime(2011, 4, 16)));

            // positive
            DateTime dateDiffPositive = new DateTime(2011, 3, 19);
            DateTime?positive1        = dateAdd.Add(dateDiffPositive, Duration.Hours(1));

            Console.WriteLine("DateAdd Positive1: {0}", positive1);
            // > DateAdd Positive1: 19.03.2011 01:00:00
            DateTime?positive2 = dateAdd.Add(dateDiffPositive, Duration.Days(4));

            Console.WriteLine("DateAdd Positive2: {0}", positive2);
            // > DateAdd Positive2: 26.03.2011 00:00:00
            DateTime?positive3 = dateAdd.Add(dateDiffPositive, Duration.Days(17));

            Console.WriteLine("DateAdd Positive3: {0}", positive3);
            // > DateAdd Positive3: 14.04.2011 00:00:00
            DateTime?positive4 = dateAdd.Add(dateDiffPositive, Duration.Days(20));

            Console.WriteLine("DateAdd Positive4: {0}", positive4);
            // > DateAdd Positive4: 18.04.2011 00:00:00

            // negative
            DateTime dateDiffNegative = new DateTime(2011, 4, 18);
            DateTime?negative1        = dateAdd.Add(dateDiffNegative, Duration.Hours(-1));

            Console.WriteLine("DateAdd Negative1: {0}", negative1);
            // > DateAdd Negative1: 17.04.2011 23:00:00
            DateTime?negative2 = dateAdd.Add(dateDiffNegative, Duration.Days(-4));

            Console.WriteLine("DateAdd Negative2: {0}", negative2);
            // > DateAdd Negative2: 13.04.2011 00:00:00
            DateTime?negative3 = dateAdd.Add(dateDiffNegative, Duration.Days(-17));

            Console.WriteLine("DateAdd Negative3: {0}", negative3);
            // > DateAdd Negative3: 22.03.2011 00:00:00
            DateTime?negative4 = dateAdd.Add(dateDiffNegative, Duration.Days(-20));

            Console.WriteLine("DateAdd Negative4: {0}", negative4);
            // > DateAdd Negative4: 19.03.2011 00:00:00
        }         // DateAddSample
Exemple #11
0
        public void IncludeExclude6Test()
        {
            DateAdd dateAdd = new DateAdd();

            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 10), new DateTime(2011, 3, 20)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 3, 5), new DateTime(2011, 3, 12)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 3, 18), new DateTime(2011, 3, 30)));

            DateTime test = new DateTime(2011, 3, 10);

            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), new DateTime(2011, 3, 12));
            Assert.Equal(dateAdd.Add(test, Duration.Days(1)), new DateTime(2011, 3, 13));
        }         // IncludeExclude6Test
Exemple #12
0
        public void PeriodLimitsAddTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange1 = new TimeRange(new DateTime(2011, 4, 20), new DateTime(2011, 4, 25));
            TimeRange timeRange2 = new TimeRange(new DateTime(2011, 4, 30), DateTime.MaxValue);
            DateAdd   dateAdd    = new DateAdd();

            dateAdd.ExcludePeriods.Add(timeRange1);
            dateAdd.ExcludePeriods.Add(timeRange2);

            Assert.Equal(dateAdd.Add(test, new TimeSpan(8, 0, 0, 0)), timeRange1.End);
            Assert.Null(dateAdd.Add(test, new TimeSpan(20, 0, 0, 0)));
        }         // PeriodLimitsAddTest
Exemple #13
0
        public void IncludeExclude4Test()
        {
            DateAdd dateAdd = new DateAdd();

            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 10), new DateTime(2011, 3, 20)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 3, 10), new DateTime(2011, 3, 15)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 3, 15), new DateTime(2011, 3, 20)));

            DateTime test = new DateTime(2011, 3, 10);

            Assert.Null(dateAdd.Add(test, TimeSpan.Zero));
            Assert.Null(dateAdd.Add(test, Duration.Days(1)));
            Assert.Null(dateAdd.Add(test, Duration.Days(5)));
        }         // IncludeExclude4Test
Exemple #14
0
        public void PeriodLimitsSubtractTest()
        {
            DateTime test = new DateTime(2011, 4, 30);

            TimeRange timeRange1 = new TimeRange(new DateTime(2011, 4, 20), new DateTime(2011, 4, 25));
            TimeRange timeRange2 = new TimeRange(DateTime.MinValue, new DateTime(2011, 4, 10));
            DateAdd   dateAdd    = new DateAdd();

            dateAdd.ExcludePeriods.Add(timeRange1);
            dateAdd.ExcludePeriods.Add(timeRange2);

            Assert.Equal(dateAdd.Subtract(test, new TimeSpan(5, 0, 0, 0)), timeRange1.Start);
            Assert.Null(dateAdd.Subtract(test, new TimeSpan(20, 0, 0, 0)));
        }         // PeriodLimitsSubtractTest
Exemple #15
0
        public void IncludeOutsideMinTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange = new TimeRange(DateTime.MinValue, new DateTime(2011, 4, 10));
            DateAdd   dateAdd   = new DateAdd();

            dateAdd.IncludePeriods.Add(timeRange);

            Assert.Null(dateAdd.Add(test, TimeSpan.Zero));
            Assert.Null(dateAdd.Add(test, new TimeSpan(1, 0, 0, 0)));

            Assert.Equal(dateAdd.Subtract(test, TimeSpan.Zero), new DateTime(2011, 4, 10));
            Assert.Equal(dateAdd.Subtract(test, new TimeSpan(1, 0, 0, 0)), new DateTime(2011, 4, 9));
        }         // IncludeOutsideMinTest
Exemple #16
0
        public void IncludeOutsideMaxTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange = new TimeRange(new DateTime(2011, 4, 20), DateTime.MaxValue);
            DateAdd   dateAdd   = new DateAdd();

            dateAdd.IncludePeriods.Add(timeRange);

            Assert.AreEqual(dateAdd.Add(test, TimeSpan.Zero), new DateTime(2011, 4, 20));
            Assert.AreEqual(dateAdd.Add(test, new TimeSpan(1, 0, 0, 0)), new DateTime(2011, 4, 21));

            Assert.IsNull(dateAdd.Subtract(test, TimeSpan.Zero));
            Assert.IsNull(dateAdd.Subtract(test, new TimeSpan(1, 0, 0, 0)));
        }         // IncludeOutsideMaxTest
Exemple #17
0
        public void ExcludeTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange = new TimeRange(new DateTime(2011, 4, 15), new DateTime(2011, 4, 20));
            DateAdd   dateAdd   = new DateAdd();

            dateAdd.ExcludePeriods.Add(timeRange);

            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(2, 0, 0, 0)), test.Add(new TimeSpan(2, 0, 0, 0)));
            Assert.Equal(dateAdd.Add(test, new TimeSpan(3, 0, 0, 0)), timeRange.End);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(3, 0, 0, 0, 1)), timeRange.End.Add(new TimeSpan(0, 0, 0, 0, 1)));
            Assert.Equal(dateAdd.Add(test, new TimeSpan(5, 0, 0, 0)), timeRange.End.Add(new TimeSpan(2, 0, 0, 0)));
        }         // ExcludeTest
Exemple #18
0
        public void IncludeEqualsExcludeTest()
        {
            DateAdd dateAdd = new DateAdd();

            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 5), new DateTime(2011, 3, 10)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 3, 5), new DateTime(2011, 3, 10)));

            DateTime test = new DateTime(2011, 3, 5);

            Assert.Null(dateAdd.Add(test, TimeSpan.Zero));
            Assert.Null(dateAdd.Add(test, new TimeSpan(1)));
            Assert.Null(dateAdd.Add(test, new TimeSpan(-1)));
            Assert.Null(dateAdd.Subtract(test, TimeSpan.Zero));
            Assert.Null(dateAdd.Subtract(test, new TimeSpan(1)));
            Assert.Null(dateAdd.Subtract(test, new TimeSpan(-1)));
        }         // IncludeEqualsExcludeTest
Exemple #19
0
        public void IncludeSplitTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange1 = new TimeRange(new DateTime(2011, 4, 1), new DateTime(2011, 4, 15));
            TimeRange timeRange2 = new TimeRange(new DateTime(2011, 4, 20), new DateTime(2011, 4, 24));
            DateAdd   dateAdd    = new DateAdd();

            dateAdd.IncludePeriods.Add(timeRange1);
            dateAdd.IncludePeriods.Add(timeRange2);

            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(1, 0, 0, 0)), test.Add(new TimeSpan(1, 0, 0, 0)));
            Assert.Equal(dateAdd.Add(test, new TimeSpan(5, 0, 0, 0)), timeRange2.Start.Add(new TimeSpan(2, 0, 0, 0)));
            Assert.Null(dateAdd.Add(test, new TimeSpan(15, 0, 0, 0)));
        }         // IncludeSplitTest
        private void RevenueStatus_Load(object sender, EventArgs e)
        {
            foreach (var item in new SalesDao().ProList()) //상품별 조회에 아이템 추가
            {
                comboProduct.Items.Add(item.ProductName);
            }

            DateTime DateAdd; //

            dtpStart.Value = dtpComparison1.Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            DateAdd        = dtpEnd.Value = dtpComparison2.Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));
            DateAdd.AddDays(1);
            RevenueSearch(dtpStart.Value.ToShortDateString(), DateAdd.ToShortDateString());

            chartRevenue.Series.Clear();
            ChartView(revenueList, "날짜", 0);
        }
Exemple #21
0
        public void PeriodMomentTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange = new TimeRange(test, test);
            DateAdd   dateAdd   = new DateAdd();

            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            dateAdd.IncludePeriods.Add(timeRange);
            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            dateAdd.ExcludePeriods.Add(timeRange);
            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            dateAdd.IncludePeriods.Clear();
            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            dateAdd.ExcludePeriods.Clear();
            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
        }         // PeriodMomentTest
Exemple #22
0
        public void ExcludeSplitTest()
        {
            DateTime test = new DateTime(2011, 4, 12);

            TimeRange timeRange1 = new TimeRange(new DateTime(2011, 4, 15), new DateTime(2011, 4, 20));
            TimeRange timeRange2 = new TimeRange(new DateTime(2011, 4, 22), new DateTime(2011, 4, 25));
            DateAdd   dateAdd    = new DateAdd();

            dateAdd.ExcludePeriods.Add(timeRange1);
            dateAdd.ExcludePeriods.Add(timeRange2);

            Assert.Equal(dateAdd.Add(test, TimeSpan.Zero), test);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(2, 0, 0, 0)), test.Add(new TimeSpan(2, 0, 0, 0)));
            Assert.Equal(dateAdd.Add(test, new TimeSpan(3, 0, 0, 0)), timeRange1.End);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(4, 0, 0, 0)), timeRange1.End.Add(new TimeSpan(1, 0, 0, 0)));
            Assert.Equal(dateAdd.Add(test, new TimeSpan(5, 0, 0, 0)), timeRange2.End);
            Assert.Equal(dateAdd.Add(test, new TimeSpan(7, 0, 0, 0)), timeRange2.End.Add(new TimeSpan(2, 0, 0, 0)));
        }         // ExcludeSplitTest
Exemple #23
0
        public void IncludeExclude2Test()
        {
            DateAdd dateAdd = new DateAdd();

            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 1), new DateTime(2011, 3, 5)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 3, 5), new DateTime(2011, 3, 10)));
            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 10), new DateTime(2011, 3, 15)));
            dateAdd.ExcludePeriods.Add(new TimeRange(new DateTime(2011, 3, 15), new DateTime(2011, 3, 20)));
            dateAdd.IncludePeriods.Add(new TimeRange(new DateTime(2011, 3, 20), new DateTime(2011, 3, 25)));

            DateTime periodStart = new DateTime(2011, 3, 1);
            DateTime periodEnd   = new DateTime(2011, 3, 25);

            // add from start
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(1)), new DateTime(2011, 3, 2));
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(4)), new DateTime(2011, 3, 10));
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(5)), new DateTime(2011, 3, 11));
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(9)), new DateTime(2011, 3, 20));
            Assert.Equal(dateAdd.Add(periodStart, Duration.Days(10)), new DateTime(2011, 3, 21));
            Assert.Null(dateAdd.Add(periodStart, Duration.Days(15)));
            // add from end
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-1)), new DateTime(2011, 3, 24));
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-5)), new DateTime(2011, 3, 15));
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-6)), new DateTime(2011, 3, 14));
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-10)), new DateTime(2011, 3, 5));
            Assert.Equal(dateAdd.Add(periodEnd, Duration.Days(-11)), new DateTime(2011, 3, 4));
            Assert.Null(dateAdd.Add(periodEnd, Duration.Days(-15)));

            // subtract form end
            Assert.Equal(dateAdd.Subtract(periodEnd, Duration.Days(1)), new DateTime(2011, 3, 24));
            Assert.Equal(dateAdd.Subtract(periodEnd, Duration.Days(5)), new DateTime(2011, 3, 15));
            Assert.Equal(dateAdd.Subtract(periodEnd, Duration.Days(6)), new DateTime(2011, 3, 14));
            Assert.Equal(dateAdd.Subtract(periodEnd, Duration.Days(10)), new DateTime(2011, 3, 5));
            Assert.Equal(dateAdd.Subtract(periodEnd, Duration.Days(11)), new DateTime(2011, 3, 4));
            Assert.Null(dateAdd.Subtract(periodStart, Duration.Days(15)));
            // subtract form start
            Assert.Equal(dateAdd.Subtract(periodStart, Duration.Days(-1)), new DateTime(2011, 3, 2));
            Assert.Equal(dateAdd.Subtract(periodStart, Duration.Days(-4)), new DateTime(2011, 3, 10));
            Assert.Equal(dateAdd.Subtract(periodStart, Duration.Days(-5)), new DateTime(2011, 3, 11));
            Assert.Equal(dateAdd.Subtract(periodStart, Duration.Days(-9)), new DateTime(2011, 3, 20));
            Assert.Equal(dateAdd.Subtract(periodStart, Duration.Days(-10)), new DateTime(2011, 3, 21));
            Assert.Null(dateAdd.Subtract(periodStart, Duration.Days(-15)));
        }         // IncludeExclude2Test
Exemple #24
0
        public void Demo2_Complex_Function()
        {
            using (var context = DbContextFactory.GetDbContext())
            {
                var adddayfun = new DateAdd <Student>(a => a.CreateTime, 1, "day");

                //in columus
                var student1 = context.From <Student>()
                               .Select(s => new
                {
                    s.Id,
                    DateTime = (DateTime)adddayfun     //just for type inference
                });

                //in expression
                var student2 = context.From <Student>()
                               .Where(a => adddayfun > DateTime.Now)
                               .Select();
            }
        }
Exemple #25
0
        private void FrmRevenueStatusControl_Load(object sender, EventArgs e)
        {
            grdRevenue.Font = new Font("맑은고딕", 9);
            foreach (var item in new SalesDao().ProList()) //상품별 조회에 아이템 추가
            {
                comboProduct.Items.Add(item.ProductName);
            }

            DateTime DateAdd; //

            dtpStart.Value = dtpComparison1.Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            DateAdd        = dtpEnd.Value = dtpComparison2.Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));
            DateAdd.AddDays(1);
            RevenueSearch(dtpStart.Value.ToShortDateString(), DateAdd.ToShortDateString());

            chartRevenue.Series.Clear();
            ChartView(revenueList, "날짜", 0);
            lbl1.Text   = String.Format("{0:##,##0}", (Accumulated * 0.2)) + " 원";
            label7.Text = String.Format("{0:##,##0}", (Accumulated)) + " 원";
        }
Exemple #26
0
 public MySqlFunctionManager(bool allowFuncDefChange)
 {
     this.allowFuncDefChange                = allowFuncDefChange;
     parsingStrateg["CAST"]                 = FunctionParsingStrategy.Cast;
     parsingStrateg["POSITION"]             = FunctionParsingStrategy.Position;
     parsingStrateg["SUBSTR"]               = FunctionParsingStrategy.Substring;
     parsingStrateg["SUBSTRING"]            = FunctionParsingStrategy.Substring;
     parsingStrateg["TRIM"]                 = FunctionParsingStrategy.Trim;
     parsingStrateg["AVG"]                  = FunctionParsingStrategy.Avg;
     parsingStrateg["COUNT"]                = FunctionParsingStrategy.Count;
     parsingStrateg["GROUP_CONCAT"]         = FunctionParsingStrategy.GroupConcat;
     parsingStrateg["MAX"]                  = FunctionParsingStrategy.Max;
     parsingStrateg["MIN"]                  = FunctionParsingStrategy.Min;
     parsingStrateg["SUM"]                  = FunctionParsingStrategy.Sum;
     parsingStrateg["ROW"]                  = FunctionParsingStrategy.Row;
     parsingStrateg["CHAR"]                 = FunctionParsingStrategy.Char;
     parsingStrateg["CONVERT"]              = FunctionParsingStrategy.Convert;
     parsingStrateg["EXTRACT"]              = FunctionParsingStrategy.Extract;
     parsingStrateg["TIMESTAMPADD"]         = FunctionParsingStrategy.Timestampadd;
     parsingStrateg["TIMESTAMPDIFF"]        = FunctionParsingStrategy.Timestampdiff;
     parsingStrateg["GET_FORMAT"]           = FunctionParsingStrategy.GetFormat;
     functionPrototype["ABS"]               = new Abs(null);
     functionPrototype["ACOS"]              = new Acos(null);
     functionPrototype["ADDDATE"]           = new Adddate(null);
     functionPrototype["ADDTIME"]           = new Addtime(null);
     functionPrototype["AES_DECRYPT"]       = new AesDecrypt(null);
     functionPrototype["AES_ENCRYPT"]       = new AesEncrypt(null);
     functionPrototype["ANALYSE"]           = new Analyse(null);
     functionPrototype["ASCII"]             = new Ascii(null);
     functionPrototype["ASIN"]              = new Asin(null);
     functionPrototype["ATAN2"]             = new Atan2(null);
     functionPrototype["ATAN"]              = new Atan(null);
     functionPrototype["BENCHMARK"]         = new Benchmark(null);
     functionPrototype["BIN"]               = new Bin(null);
     functionPrototype["BIT_AND"]           = new BitAnd(null);
     functionPrototype["BIT_COUNT"]         = new BitCount(null);
     functionPrototype["BIT_LENGTH"]        = new BitLength(null);
     functionPrototype["BIT_OR"]            = new BitOR(null);
     functionPrototype["BIT_XOR"]           = new BitXor(null);
     functionPrototype["CEIL"]              = new Ceiling(null);
     functionPrototype["CEILING"]           = new Ceiling(null);
     functionPrototype["CHAR_LENGTH"]       = new CharLength(null);
     functionPrototype["CHARACTER_LENGTH"]  = new CharLength(null);
     functionPrototype["CHARSET"]           = new Charset(null);
     functionPrototype["COALESCE"]          = new Coalesce(null);
     functionPrototype["COERCIBILITY"]      = new Coercibility(null);
     functionPrototype["COLLATION"]         = new Collation(null);
     functionPrototype["COMPRESS"]          = new Compress(null);
     functionPrototype["CONCAT_WS"]         = new ConcatWs(null);
     functionPrototype["CONCAT"]            = new Concat(null);
     functionPrototype["CONNECTION_ID"]     = new ConnectionId(null);
     functionPrototype["CONV"]              = new Conv(null);
     functionPrototype["CONVERT_TZ"]        = new ConvertTz(null);
     functionPrototype["COS"]               = new Cos(null);
     functionPrototype["COT"]               = new Cot(null);
     functionPrototype["CRC32"]             = new Crc32(null);
     functionPrototype["CURDATE"]           = new Curdate();
     functionPrototype["CURRENT_DATE"]      = new Curdate();
     functionPrototype["CURRENT_TIME"]      = new Curtime();
     functionPrototype["CURTIME"]           = new Curtime();
     functionPrototype["CURRENT_TIMESTAMP"] = new Now();
     functionPrototype["CURRENT_USER"]      = new CurrentUser();
     functionPrototype["CURTIME"]           = new Curtime();
     functionPrototype["DATABASE"]          = new Database(null);
     functionPrototype["DATE_ADD"]          = new DateAdd(null);
     functionPrototype["DATE_FORMAT"]       = new DateFormat(null);
     functionPrototype["DATE_SUB"]          = new DateSub(null);
     functionPrototype["DATE"]              = new Date(null);
     functionPrototype["DATEDIFF"]          = new Datediff(null);
     functionPrototype["DAY"]               = new Dayofmonth(null);
     functionPrototype["DAYOFMONTH"]        = new Dayofmonth(null);
     functionPrototype["DAYNAME"]           = new Dayname(null);
     functionPrototype["DAYOFWEEK"]         = new Dayofweek(null);
     functionPrototype["DAYOFYEAR"]         = new Dayofyear(null);
     functionPrototype["DECODE"]            = new Decode(null);
     functionPrototype["DEFAULT"]           = new Default(null);
     functionPrototype["DEGREES"]           = new Degrees(null);
     functionPrototype["DES_DECRYPT"]       = new DesDecrypt(null);
     functionPrototype["DES_ENCRYPT"]       = new DesEncrypt(null);
     functionPrototype["ELT"]               = new Elt(null);
     functionPrototype["ENCODE"]            = new Encode(null);
     functionPrototype["ENCRYPT"]           = new Encrypt(null);
     functionPrototype["EXP"]               = new Exp(null);
     functionPrototype["EXPORT_SET"]        = new ExportSet(null);
     // functionPrototype.put("EXTRACT", new Extract(null));
     functionPrototype["EXTRACTVALUE"]  = new ExtractValue(null);
     functionPrototype["FIELD"]         = new Field(null);
     functionPrototype["FIND_IN_SET"]   = new FindInSet(null);
     functionPrototype["FLOOR"]         = new Floor(null);
     functionPrototype["FORMAT"]        = new Format(null);
     functionPrototype["FOUND_ROWS"]    = new FoundRows(null);
     functionPrototype["FROM_DAYS"]     = new FromDays(null);
     functionPrototype["FROM_UNIXTIME"] = new FromUnixtime(null);
     // functionPrototype.put("GET_FORMAT", new GetFormat(null));
     functionPrototype["GET_LOCK"]       = new GetLock(null);
     functionPrototype["GREATEST"]       = new Greatest(null);
     functionPrototype["HEX"]            = new Hex(null);
     functionPrototype["HOUR"]           = new Hour(null);
     functionPrototype["IF"]             = new IF(null);
     functionPrototype["IFNULL"]         = new IFNull(null);
     functionPrototype["INET_ATON"]      = new InetAton(null);
     functionPrototype["INET_NTOA"]      = new InetNtoa(null);
     functionPrototype["INSERT"]         = new Insert(null);
     functionPrototype["INSTR"]          = new Instr(null);
     functionPrototype["INTERVAL"]       = new Interval(null);
     functionPrototype["IS_FREE_LOCK"]   = new IsFreeLock(null);
     functionPrototype["IS_USED_LOCK"]   = new IsUsedLock(null);
     functionPrototype["ISNULL"]         = new IsNull(null);
     functionPrototype["LAST_DAY"]       = new LastDay(null);
     functionPrototype["LAST_INSERT_ID"] = new LastInsertId(null);
     functionPrototype["LCASE"]          = new Lower(null);
     functionPrototype["LEAST"]          = new Least(null);
     functionPrototype["LEFT"]           = new Left(null);
     functionPrototype["LENGTH"]         = new Length(null);
     functionPrototype["LN"]             = new Log(null);
     // Ln(X) equals Log(X)
     functionPrototype["LOAD_FILE"]       = new LoadFile(null);
     functionPrototype["LOCALTIME"]       = new Now();
     functionPrototype["LOCALTIMESTAMP"]  = new Now();
     functionPrototype["LOCATE"]          = new Locate(null);
     functionPrototype["LOG10"]           = new Log10(null);
     functionPrototype["LOG2"]            = new Log2(null);
     functionPrototype["LOG"]             = new Log(null);
     functionPrototype["LOWER"]           = new Lower(null);
     functionPrototype["LPAD"]            = new Lpad(null);
     functionPrototype["LTRIM"]           = new Ltrim(null);
     functionPrototype["MAKE_SET"]        = new MakeSet(null);
     functionPrototype["MAKEDATE"]        = new Makedate(null);
     functionPrototype["MAKETIME"]        = new Maketime(null);
     functionPrototype["MASTER_POS_WAIT"] = new MasterPosWait(null);
     functionPrototype["MD5"]             = new Md5(null);
     functionPrototype["MICROSECOND"]     = new Microsecond(null);
     functionPrototype["MID"]             = new Substring(null);
     functionPrototype["MINUTE"]          = new Minute(null);
     functionPrototype["MONTH"]           = new Month(null);
     functionPrototype["MONTHNAME"]       = new Monthname(null);
     functionPrototype["NAME_CONST"]      = new NameConst(null);
     functionPrototype["NOW"]             = new Now();
     functionPrototype["NULLIF"]          = new NullIF(null);
     functionPrototype["OCT"]             = new Oct(null);
     functionPrototype["OCTET_LENGTH"]    = new Length(null);
     functionPrototype["OLD_PASSWORD"]    = new OldPassword(null);
     functionPrototype["ORD"]             = new Ord(null);
     functionPrototype["PASSWORD"]        = new Password(null);
     functionPrototype["PERIOD_ADD"]      = new PeriodAdd(null);
     functionPrototype["PERIOD_DIFF"]     = new PeriodDiff(null);
     functionPrototype["PI"]              = new PI(null);
     functionPrototype["POW"]             = new Pow(null);
     functionPrototype["POWER"]           = new Pow(null);
     functionPrototype["QUARTER"]         = new Quarter(null);
     functionPrototype["QUOTE"]           = new Quote(null);
     functionPrototype["RADIANS"]         = new Radians(null);
     functionPrototype["RAND"]            = new Rand(null);
     functionPrototype["RELEASE_LOCK"]    = new ReleaseLock(null);
     functionPrototype["REPEAT"]          = new Repeat(null);
     functionPrototype["REPLACE"]         = new Replace(null);
     functionPrototype["REVERSE"]         = new Reverse(null);
     functionPrototype["RIGHT"]           = new Right(null);
     functionPrototype["ROUND"]           = new Round(null);
     functionPrototype["ROW_COUNT"]       = new RowCount(null);
     functionPrototype["RPAD"]            = new Rpad(null);
     functionPrototype["RTRIM"]           = new Rtrim(null);
     functionPrototype["SCHEMA"]          = new Database(null);
     functionPrototype["SEC_TO_TIME"]     = new SecToTime(null);
     functionPrototype["SECOND"]          = new Second(null);
     functionPrototype["SESSION_USER"]    = new User(null);
     functionPrototype["SHA1"]            = new Sha1(null);
     functionPrototype["SHA"]             = new Sha1(null);
     functionPrototype["SHA2"]            = new Sha2(null);
     functionPrototype["SIGN"]            = new Sign(null);
     functionPrototype["SIN"]             = new Sin(null);
     functionPrototype["SLEEP"]           = new Sleep(null);
     functionPrototype["SOUNDEX"]         = new Soundex(null);
     functionPrototype["SPACE"]           = new Space(null);
     functionPrototype["SQRT"]            = new Sqrt(null);
     functionPrototype["STD"]             = new Std(null);
     functionPrototype["STDDEV_POP"]      = new StdDevPop(null);
     functionPrototype["STDDEV_SAMP"]     = new StdDevSamp(null);
     functionPrototype["STDDEV"]          = new StdDev(null);
     functionPrototype["STR_TO_DATE"]     = new StrToDate(null);
     functionPrototype["STRCMP"]          = new Strcmp(null);
     functionPrototype["SUBDATE"]         = new Subdate(null);
     functionPrototype["SUBSTRING_INDEX"] = new SubstringIndex(null);
     functionPrototype["SUBTIME"]         = new Subtime(null);
     functionPrototype["SYSDATE"]         = new Sysdate(null);
     functionPrototype["SYSTEM_USER"]     = new User(null);
     functionPrototype["TAN"]             = new Tan(null);
     functionPrototype["TIME_FORMAT"]     = new TimeFormat(null);
     functionPrototype["TIME_TO_SEC"]     = new TimeToSec(null);
     functionPrototype["TIME"]            = new Time(null);
     functionPrototype["TIMEDIFF"]        = new Timediff(null);
     functionPrototype["TIMESTAMP"]       = new Timestamp(null);
     // functionPrototype.put("TIMESTAMPADD", new Timestampadd(null));
     // functionPrototype.put("TIMESTAMPDIFF", new Timestampdiff(null));
     functionPrototype["TO_DAYS"]             = new ToDays(null);
     functionPrototype["TO_SECONDS"]          = new ToSeconds(null);
     functionPrototype["TRUNCATE"]            = new Truncate(null);
     functionPrototype["UCASE"]               = new Upper(null);
     functionPrototype["UNCOMPRESS"]          = new Uncompress(null);
     functionPrototype["UNCOMPRESSED_LENGTH"] = new UncompressedLength(null);
     functionPrototype["UNHEX"]               = new Unhex(null);
     functionPrototype["UNIX_TIMESTAMP"]      = new UnixTimestamp(null);
     functionPrototype["UPDATEXML"]           = new UpdateXml(null);
     functionPrototype["UPPER"]               = new Upper(null);
     functionPrototype["USER"]          = new User(null);
     functionPrototype["UTC_DATE"]      = new UtcDate(null);
     functionPrototype["UTC_TIME"]      = new UtcTime(null);
     functionPrototype["UTC_TIMESTAMP"] = new UtcTimestamp(null);
     functionPrototype["UUID_SHORT"]    = new UuidShort(null);
     functionPrototype["UUID"]          = new Uuid(null);
     functionPrototype["VALUES"]        = new Values(null);
     functionPrototype["VAR_POP"]       = new VarPop(null);
     functionPrototype["VAR_SAMP"]      = new VarSamp(null);
     functionPrototype["VARIANCE"]      = new Variance(null);
     functionPrototype["VERSION"]       = new Version(null);
     functionPrototype["WEEK"]          = new Week(null);
     functionPrototype["WEEKDAY"]       = new Weekday(null);
     functionPrototype["WEEKOFYEAR"]    = new Weekofyear(null);
     functionPrototype["YEAR"]          = new Year(null);
     functionPrototype["YEARWEEK"]      = new Yearweek(null);
 }
Exemple #27
0
        public ActionResult EditDate()
        {
            ApplicationDbContext db = new ApplicationDbContext();

            string username = User.Identity.Name;

            Customer customer = db.Customer.FirstOrDefault(u => u.Username.Equals(username));

            Customer updateCustomer = new Customer();

            updateCustomer.DayOfWeek   = customer.DayOfWeek;
            updateCustomer.ExtraPickUp = customer.ExtraPickUp;
            DateAdd dateAdd = db.DateAdd.Take(1).FirstOrDefault();

            DateTime CurrentDate = (DateTime)dateAdd.CurrentDate;
            DateTime FutureDate  = (DateTime)dateAdd.FutureDate;
            DateTime StartDate;

            if (customer.StartDate.HasValue)
            {
                StartDate = (DateTime)customer.StartDate;
            }
            else
            {
                StartDate = DateTime.Now;
            }


            DateTime EndDate;

            if (customer.EndDate.HasValue)
            {
                EndDate = (DateTime)customer.EndDate;
            }
            else
            {
                EndDate = DateTime.Now;
            }

            DayOfWeek?day = customer.DayOfWeek;

            List <DateTime> dates =
                Enumerable.Range(0, (int)((FutureDate - CurrentDate).TotalDays) + 1)
                .Select(n => CurrentDate.AddDays(n))
                .ToList();

            var      dayCount = dates.Count(x => x.DayOfWeek == day);
            double   extraDayCost;
            DateTime extraPickUp = (DateTime)customer.ExtraPickUp;

            extraDayCost = (extraPickUp >= CurrentDate && extraPickUp < FutureDate) ? 25 : 0;

            TimeSpan d        = new TimeSpan(Math.Max(Math.Min(FutureDate.Ticks, EndDate.Ticks) - Math.Max(CurrentDate.Ticks, StartDate.Ticks) + TimeSpan.TicksPerDay, 0));
            int      dayMinus = (int)d.TotalDays;
            int      noNum;

            if (dayMinus > 0 && dayMinus < 7)
            {
                noNum = 0;
            }
            else if (dayMinus >= 7 && dayMinus < 14)
            {
                noNum = 1;
            }
            else if (dayMinus >= 14 && dayMinus < 21)
            {
                noNum = 2;
            }
            else if (dayMinus >= 21 && dayMinus < 28)
            {
                noNum = 3;
            }
            else
            {
                noNum = 0;
            }

            double balance = (dayCount - noNum) * 20;


            updateCustomer.Balance   = balance + extraDayCost;
            updateCustomer.StartDate = customer.StartDate;
            updateCustomer.EndDate   = customer.EndDate;

            return(View(updateCustomer));
        }
Exemple #28
0
        public ActionResult EditDate(Customer userprofile)
        {
            ApplicationDbContext db = new ApplicationDbContext();

            if (ModelState.IsValid)
            {
                string username = User.Identity.Name;
                // Get the userprofile
                Customer customer = db.Customer.FirstOrDefault(u => u.Username.Equals(username));

                customer.DayOfWeek   = userprofile.DayOfWeek;
                customer.ExtraPickUp = userprofile.ExtraPickUp;


                DateAdd dateAdd = db.DateAdd.Take(1).FirstOrDefault();

                DateTime CurrentDate = (DateTime)dateAdd.CurrentDate;
                DateTime FutureDate  = (DateTime)dateAdd.FutureDate;
                DateTime StartDate;
                if (customer.StartDate.HasValue)
                {
                    StartDate = (DateTime)customer.StartDate;
                }
                else
                {
                    StartDate = DateTime.Now;
                }


                DateTime EndDate;
                if (customer.EndDate.HasValue)
                {
                    EndDate = (DateTime)customer.EndDate;
                }
                else
                {
                    EndDate = DateTime.Now;
                }



                DayOfWeek?day = customer.DayOfWeek;

                List <DateTime> dates =
                    Enumerable.Range(0, (int)((FutureDate - CurrentDate).TotalDays) + 1)
                    .Select(n => CurrentDate.AddDays(n))
                    .ToList();

                var dayCount = dates.Count(x => x.DayOfWeek == day);

                ///
                double   extraDayCost;
                DateTime extraPickUp = (DateTime)customer.ExtraPickUp;

                extraDayCost = (extraPickUp >= CurrentDate && extraPickUp < FutureDate) ? 25 : 0;


                TimeSpan d        = new TimeSpan(Math.Max(Math.Min(FutureDate.Ticks, EndDate.Ticks) - Math.Max(CurrentDate.Ticks, StartDate.Ticks) + TimeSpan.TicksPerDay, 0));
                int      dayMinus = (int)d.TotalDays;
                int      noNum;

                if (dayMinus > 0 && dayMinus < 7)
                {
                    noNum = 0;
                }
                else if (dayMinus >= 7 && dayMinus < 14)
                {
                    noNum = 1;
                }
                else if (dayMinus >= 14 && dayMinus < 21)
                {
                    noNum = 2;
                }
                else if (dayMinus >= 21 && dayMinus < 28)
                {
                    noNum = 3;
                }
                else
                {
                    noNum = 0;
                }

                double balance = (dayCount - noNum) * 20;

                customer.Balance   = balance + extraDayCost;
                customer.StartDate = userprofile.StartDate;
                customer.EndDate   = userprofile.EndDate;


                db.Entry(customer).State = EntityState.Modified;

                db.SaveChanges();

                return(RedirectToAction("Index", "Home")); // or whatever
            }

            return(View(userprofile));
        }