public void Btn_Show_Calendar() { string big_cat = select_big_cat.Get_Value(); string category = select_category.Get_Value(); int activity_index = select_activity.Get_Activity_Index(); var data = new Filtering_Data(big_cat, category, activity_index); calendar.Update_Calendar(default, data);
public void Show_Daily_Record(DateTime _date, Filtering_Data _data) { if (!DataController.instance.records.ContainsKey(_date)) { Debug.Log("Null Key: 해당 날짜에 활동기록이 존재하지 않음"); return; } var day_records = DataController.instance.Get_Records_by_Filter(_date, _data); if (day_records.Length < 1) { Debug.Log("Count 0: 해당 날짜에 활동기록이 존재하지 않음"); return; } text_date.text = string.Format( _date.ToString(f_date), _Functions.Get_Day_of_Week_Kor((int)_date.DayOfWeek)); StringBuilder sb = new StringBuilder(); Dictionary <Activity, int> count_sum = new Dictionary <Activity, int>(); string prev_activity_name = string.Empty; for (int i = 0; i < day_records.Length; i++) { var record = day_records[i]; if (!count_sum.ContainsKey(record.activity)) { count_sum.Add(record.activity, 0); } count_sum[record.activity] += record.count; if (prev_activity_name != record.activity.name) { sb.Append(string.Format(f_italic, record.activity.name)); } sb.Append(string.Format(f_count, record.count, record.activity.count_unit)); prev_activity_name = record.activity.name; } sb.Append(SUM); foreach (var data in count_sum) { sb.Append(string.Format(f_sum, data.Key.name, data.Value, data.Key.count_unit)); } text_record.text = sb.ToString(); LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)text_record.transform.parent); }
public Record[] Get_Records_by_Filter(DateTime _date, Filtering_Data _data) { if (!records.ContainsKey(_date)) { return(new Record[0]); } var result = new List <Record>(); var day_record = records[_date]; // 활동으로 필터링 if (_data.activity_index != -1) { for (int i = 0; i < day_record.Count; i++) { if (day_record[i].activity.Equals(activities[_data.activity_index])) { result.Add(day_record[i]); } } return(result.ToArray()); } // 분류로 필터링 else if (_data.category != string.Empty) { for (int i = 0; i < day_record.Count; i++) { if (day_record[i].activity.category == _data.category) { result.Add(day_record[i]); } } return(result.ToArray()); } // 대분류로 필터링 else if (_data.big_cat != string.Empty) { string tmp = string.Format(f_dash, _data.big_cat); for (int i = 0; i < day_record.Count; i++) { if (day_record[i].activity.category.StartsWith(tmp) || day_record[i].activity.category == _data.big_cat) { result.Add(day_record[i]); } } return(result.ToArray()); } else { return(records[_date].ToArray()); } }
public void Update_Calendar(DateTime _month = default, Filtering_Data _data = null) { if (_data == null) { if (data == null) { data = new Filtering_Data(); } } else { data = _data; } DateTime date; if (_month != default) { date = _Functions.Get_Firstday_of_Month(_month); month = date; } else { date = _Functions.Get_Firstday_of_Month(month); } int first_weekday = (int)date.DayOfWeek; var today = DateTime.Today; for (int i = 0; i < container_days.childCount; i++) { var child = container_days.GetChild(i); if (i < first_weekday || date.Month > month.Month) { Set_Empty_Date(child); } else if (date > today) { Set_Disabled_Date(child); date = date.AddDays(1); } else { Set_Date(child, date); date = date.AddDays(1); } } text_filtering.text = Get_Filtering_Text(); input_year.text = string.Format(f_num, month.Year % 2000); input_month.text = string.Format(f_num, month.Month); }