public void ParsingData() { int diffDate = EndDateTime.Subtract(StartDateTime).Days; for (int str = 0; str <= diffDate; str++) { string date = StartDateTime.AddDays(str).ToString("yyyyMMdd"); var data = ParsingHTML.GetTWSE(date); foreach (var item in data) { SQlite_Module.Manipulate($@"INSERT INTO TWSE(""證券代號"", ""證券名稱"", ""成交股數"", ""成交筆數"", ""成交金額"",""開盤價"",""最高價"",""最低價"",""收盤價"",""漲跌(+/-)"",""漲跌價差"",""最後揭示買價"",""最後揭示買量"",""最後揭示賣價"",""最後揭示賣量"",""本益比"") VALUES({string.Join(",", item.Value)})"); } } TWSE_Data = SQlite_Module.GetDataTable("SELECT * FROM TWSE"); }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var results = new List <ValidationResult>(); if (string.IsNullOrWhiteSpace(Name)) { results.Add(new ValidationResult($"{nameof(Name)} cannot be null, empty or consist of only whitespace", new[] { nameof(Name) })); } if (EndDateTime < StartDateTime) { results.Add(new ValidationResult($"{nameof(EndDateTime)} cannot be before {nameof(StartDateTime)}", new[] { nameof(StartDateTime), nameof(EndDateTime) })); } else if (EndDateTime < StartDateTime.AddDays(10)) { results.Add(new ValidationResult($"{nameof(EndDateTime)} must be atleast 1 day after {nameof(StartDateTime)}", new[] { nameof(StartDateTime), nameof(EndDateTime) })); } return(results); }
void Loadchart() { SeriesCollectionline = new SeriesCollection(); SeriesCollectionpie = new SeriesCollection(); casenum = new int[4] { 0, 0, 0, 0 }; for (int i = 1; i < 5; i++) { StackedAreaSeries stackedareaSeries = new StackedAreaSeries { Title = "第" + i + "类", LineSmoothness = i }; var Values = new ChartValues <DateTimePoint>(); var days = (EndDateTime - StartDateTime).Days; DateTime queryDate = StartDateTime.AddDays(-1); for (int j = 0; j < days; j++) { queryDate = queryDate.AddDays(1); int num = GetCaseCount(queryDate.Date, queryDate.Date, i); casenum[i - 1] += num; Values.Add(new DateTimePoint(queryDate.Date, Convert.ToDouble(num))); } stackedareaSeries.Values = Values; SeriesCollectionline.Add(stackedareaSeries); PieSeries ps = new PieSeries(); ps.Title = "第" + i + "类"; ps.Values = new ChartValues <int>(new int[1] { casenum[i - 1] }); ps.DataLabels = true; ps.LabelPoint = PointLabel; SeriesCollectionpie.Add(ps); } linechart.Series = SeriesCollectionline; piechart.Series = SeriesCollectionpie; }
private DateTime GetDailyExecutionTime(DateTime now) { /* Has Intervals * 1) Get difference between Now and StartDate time * 2) Add frequency intervals to difference in days * 3) Divide Result with intervals and then multiply interval * 4) Add this result to start date Time */ DateTime nextExecutionDate = DateTime.Now; if (FrequencyIntervals == 1) { string cronString = string.Format("{0} {1} {2} ? * * *", StartDateTime.Second, StartDateTime.Minute, StartDateTime.Hour); CronExpression cronExpression = new CronExpression(cronString); DateTimeOffset?nextValidTime = cronExpression.GetNextValidTimeAfter(now); if (nextValidTime.HasValue) { nextExecutionDate = nextValidTime.Value.DateTime.ToLocalTime(); } } else { long diffInDays = _calendarHelper.GetDayDifference(now, StartDateTime); long diffPlusInterval = diffInDays + FrequencyIntervals; long diffPlusIntervalByInterval = diffPlusInterval / FrequencyIntervals; long diffPlusIntervalByIntervalPlusInterval = (diffPlusIntervalByInterval) * FrequencyIntervals; nextExecutionDate = StartDateTime.AddDays(diffPlusIntervalByIntervalPlusInterval); } if (LastExecutionDateTime.HasValue && _calendarHelper.GetDayDifference(nextExecutionDate, LastExecutionDateTime.Value) > FrequencyIntervals) { nextExecutionDate = now; } return(nextExecutionDate); }
/// <summary> /// Creates a new survey instance (only for convenience) /// </summary> /// <param name="description"></param> /// <param name="daysFromNow"></param> /// <param name="url"></param> public Survey(string description, int daysFromNow, string url) { Description = description; StartDateTime = DateTime.Now; EndDateTime = StartDateTime.AddDays(daysFromNow); }