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
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")); }
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)); }
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
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
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
// ---------------------------------------------------------------------- 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
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
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
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
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
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
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
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
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
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); }
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
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
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
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(); } }
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)) + " 원"; }
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); }
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)); }
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)); }