Example #1
0
    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);
Example #2
0
    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);
    }
Example #3
0
    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());
        }
    }
Example #4
0
    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);
    }