private void start(string EventDay, string EventName, string EventD_Day) { if (EventD_Day.Length > 0) { EventD_Day = "D-Day : " + EventD_Day; } ; DayEventModel.Add(new EventDataModel() { EventDay = EventDay, EventDDay = EventD_Day, EventName = EventName }); }
public void SetDayCntText() { string StartYear = Preferences.Get("StartYear", DateTime.Now.ToString("yyyy")); string Startmonth = Preferences.Get("Startmonth", DateTime.Now.ToString("MM")); string Startdate = Preferences.Get("Startdate", DateTime.Now.ToString("dd")); bool oneDayCheck = Preferences.Get("userFlag", false); DayEventModel.Clear(); start("", "", ""); //string _StartString = "2020-10-07"; string _StartString = StartYear + "-" + Startmonth + "-" + Startdate; StartDay = _StartString; DateTime StartStrDay = DateTime.Parse(_StartString); //시작날짜 DateTime toDay = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); //현재 날짜 TimeSpan span = toDay - StartStrDay; int dayCnt = span.Days; //시작날짜로 부터 몇일이 지났는지 if (oneDayCheck) { dayCnt++; //1일부터 라면 +1 } DayCount = dayCnt.ToString(); System.Diagnostics.Debug.WriteLine(oneDayCheck + "," + dayCnt + " , " + StartStrDay.AddDays(dayCnt).ToString("yyyy-MM-dd")); int _ToDayEvent = dayCnt % 100; //최근 기념일 제외한 나머지 string EventDay; //몇일 기념 string EventName; //기념일 이름 string EventD_Day; //기념일까지 남은 일수 for (int i = _ToDayEvent; i < 2000; i++, dayCnt++) { EventDay = StartStrDay.AddDays(dayCnt).ToString("yyyy-MM-dd"); //하루씩 더하여 지금이 이벤트인지 확인 DateTime _EventDay = DateTime.Parse(EventDay); span = _EventDay - toDay; //검사할 날짜와 지금 날짜를 빼서 DDay를 구한다. int DDayTmp = span.Days; if (oneDayCheck) { DDayTmp--; //1일부터 라면 D-Day는 -1 } EventD_Day = DDayTmp.ToString(); if (dayCnt % 100 == 0) //100일 단위 이벤트 이다. { EventName = (dayCnt) + " 일"; start(EventDay, EventName, EventD_Day); } else if (StartStrDay.ToString("MM-dd") == StartStrDay.AddDays(dayCnt).ToString("MM-dd")) { int YearEvent = Convert.ToInt32(StartStrDay.AddDays(dayCnt).ToString("yyyy")) - Convert.ToInt32(StartStrDay.ToString("yyyy")); EventName = YearEvent + "주 년"; start(EventDay, EventName, EventD_Day); } else if (dayCnt < 100) //100일 이하 { if (dayCnt == 22) { EventName = "22 데이"; start(EventDay, EventName, EventD_Day); } else if (dayCnt == 50) { EventName = (dayCnt) + " 일"; start(EventDay, EventName, EventD_Day); } } else { string _dayCntStr = dayCnt.ToString(); int len = _dayCntStr.Length; for (int ii = 1; ii < len; ii++) //3333일같은 스트레이드 이벤트 { if (_dayCntStr[ii - 1] != _dayCntStr[ii]) { break; } else if (ii == len - 1) { EventName = (dayCnt) + " 일"; span = _EventDay - toDay; //이벤트 날짜와 지금 날짜를 빼서 DDay를 구한다. EventD_Day = span.Days.ToString(); start(EventDay, EventName, EventD_Day); } } } } }