/// <summary> /// /// </summary> /// <param name="dayindex"></param> /// <param name="today"></param> //public void UpdateDayIndex(int dayindex, DateTime today) public void UpdateDayIndex(BrowserDate today) { try { int last = jdays.Count; if (last >= 0) { int dayno = today.GetJDay(); //CHECK if (jdays[last - 1] <= 366) { dayIndex = dayno; } else { int nolaps = (int)(jdays[last - 1] / 366) + 1; int resetvalue = nolaps * 365; if (dayIndex >= resetvalue && dayno == 1) { dayIndex = 1; } else { dayIndex++; } } } } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } }
/// <summary> /// /// </summary> /// <param name="date"></param> /// <returns></returns> public bool ContainsDate(BrowserDate date) { if (Dates.Any(x => x.DateInt == date.DateInt)) { return(true); } return(false); }
public bool MatchesDate(BrowserDate date) { if (Day == MathTools.MISSING_DATA_VALUE || Month == MathTools.MISSING_DATA_VALUE || Enabled == false) { return(false); } return(date.Day == Day && date.Month == Month); }
public BrowserDate IncrementYear() { var date = new BrowserDate(Year + 1, Month, Day); DateInt = date.DateInt; Day = date.Day; Month = date.Month; Year = date.Year; return(date); }
public BrowserDate AddDays(float days) { var date = new BrowserDate(DateInt + days); //DateInt=date.DateInt; //Day=date.Day; //Month=date.Month; //Year=date.Year; return(date); }
public BrowserDate DecrementDay() { var date = new BrowserDate(DateInt - 1); DateInt = date.DateInt; Day = date.Day; Month = date.Month; Year = date.Year; return(date); }
public double GetValueForDayIndex(string datakey, BrowserDate today) { // UpdateDayIndex(today); List <double> data = values[datakey]; int count = data.Count; for (int i = 0; i < count; ++i) { if (dayIndex < jdays[0]) { //double m, c, denom; //denom = (double)(jdays[0]); //if (denom != 0) //{ // //TODO: fix this // //m = data[0] / denom; //This is not correct //} //else //{ // return 0; //} //c = data[0] - m * jdays[0]; //return (m * dayindex + c); //return 0; //After discussion with Dan Rattray... return(data[0]); } else if (dayIndex == jdays[i]) { return(data[i]); } else if (dayIndex < jdays[i]) { double m, c, denom; denom = (jdays[i] - jdays[i - 1]); if (denom != 0) { m = (data[i] - data[i - 1]) / denom; } else { return(0); } c = data[i] - m * jdays[i]; return(m * dayIndex + c); } } return(data[count - 1]); }
public BrowserDate(BrowserDate source) { try { DateInt = source.DateInt; Day = source.Day; Month = source.Month; Year = source.Year; } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } }
public double GetValueAtDate(BrowserDate date) { var dateitem = Dates.FirstOrDefault(x => x.DateInt == date.DateInt); if (dateitem != null) { int index = Dates.IndexOf(dateitem); if (index >= 0) { return(Values[index]); } } return(MathTools.MISSING_DATA_VALUE); }
/// <summary> /// /// </summary> /// <param name="date"></param> /// <returns></returns> public double ValueAtDate(BrowserDate date) { var dateobject = Dates.FirstOrDefault(x => x.DateInt == date.DateInt); if (dateobject != null) { int dateIndex = Dates.IndexOf(dateobject); if (dateIndex >= 0) { return(Values[dateIndex]); } } return(0); }
public bool IsBeforeLastMonth() { BrowserDate today = BrowserDate.Today(); var year = today.Year; var month = today.Month - 1; if (month < 0) { month = month + 12; --year; } var testdate = new BrowserDate(year, month, 1); return(IsBefore(testdate)); }
static public bool WriteOutputs(string filename, HowLeaky_SimulationEngine.Tools.BrowserDate startDate, HowLeaky_SimulationEngine.Tools.BrowserDate endDate, int format, List <string> headers, int count, List <List <double?> > values) { try { using (var w = new System.IO.StreamWriter(filename)) { w.WriteLine(string.Join(",", headers)); w.Flush(); for (var row = 0; row < count; ++row) { var list = new List <string>(); if (format == 1) { var date = startDate.AddDays(row); list.Add(date.ToString("dd/MM/yyyy")); } else if (format == 2) { var date = new HowLeaky_SimulationEngine.Tools.BrowserDate(startDate.DateInt).AddMonths(row); var lastday = HowLeaky_SimulationEngine.Tools.BrowserDate.LastDayOfMonth(date.Year, date.Month); date = new HowLeaky_SimulationEngine.Tools.BrowserDate(date.Year, date.Month, lastday); list.Add(date.ToString("MM/yyyy")); } else if (format == 3) { var date = new HowLeaky_SimulationEngine.Tools.BrowserDate(startDate.DateInt).AddYears(row); list.Add(date.ToString("yyyy")); } foreach (var array in values) { list.Add($"{array[row]:F5}"); } w.WriteLine(string.Join(",", list)); w.Flush(); } } return(true); } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } //return false; }
public BrowserDate AddYears(int years) { var day = Day; var month = Month; var newyear = Year + years; var lastday = LastDayOfMonth(newyear, month); if (day > lastday) { day = lastday; } var date = new BrowserDate(newyear, month, day); DateInt = date.DateInt; Day = date.Day; Month = date.Month; Year = date.Year; return(date); }
/// <summary> /// /// </summary> private void parseStringValue() { List <String> parts = new List <string>(_Value.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)); //foreach (String s in parts) for (int i = 0; i < parts.Count; i += 2) { string s = parts[i]; List <String> seqParts = new List <string>(s.Split(new string[] { "\"", ",", " " }, StringSplitOptions.RemoveEmptyEntries)); BrowserDate thisDate = parseDate(seqParts[0]); if (thisDate != null) { Dates.Add(thisDate); string[] valParts = parts[i + 1].Split(new string[] { "\"", ",", " " }, StringSplitOptions.RemoveEmptyEntries); double value = -1; double.TryParse(valParts[0], out value); Values.Add(value); } } }
public bool IsBetween(BrowserDate date1, BrowserDate date2) { return(DateInt >= date1.DateInt && DateInt <= date2.DateInt); }
public BrowserDate GetStartOfMonth() { var date = new BrowserDate(Year, Month, 1); return(date); }
public BrowserDate GetStartOfYear() { var date = new BrowserDate(Year, 1, 1); return(date); }
public bool IsBefore(BrowserDate date) { return(DateInt < date.DateInt); }
internal int GetJDay() { var basedate = new BrowserDate(Year, 1, 1); return(DateInt - basedate.DateInt + 1); }
public bool IsSameDate(BrowserDate date) { return(DateInt == date.DateInt); }
public int DaysFrom(BrowserDate date) { return(Math.Abs(DateInt - date.DateInt)); }
public bool IsBeforeYesterday() { return(IsBefore(BrowserDate.Yesterday())); }
//public int MonthsFrom(BrowserDate date) //{ // return (int)(Math.Abs(DateInt - date.DateInt) / (365.2422 / 12.0) + 0.5); //} public int MonthsFrom(BrowserDate date) { return(((Year - date.Year) * 12) + Month - date.Month); }