~aleteoryx/muditaos

ref: 1a15dcd7d75a25246e33c5b129ccd6ce6fdfd124 muditaos/module-apps/application-calendar/models/MonthModel.cpp -rw-r--r-- 1.6 KiB
1a15dcd7 — Tomas Rogala [EGD-3470] Date conversion to string and rework month view model 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "MonthModel.hpp"

MonthModel::MonthModel(year_month_day ymd)
{
    this->m                  = ymd.month();
    this->y                  = ymd.year();
    year_month_day_last ymdl = this->y / this->m / last;
    this->lastDay            = unsigned{ymdl.day()};
    year_month_day ymdf      = this->y / this->m / 1;
    this->offset             = weekday{ymdf}.c_encoding();
}

month MonthModel::getMonth()
{
    return this->m;
}

uint32_t MonthModel::getLastDay()
{
    return this->lastDay;
}

uint32_t MonthModel::getFirstWeekOffset()
{
    if (this->offset == 0) {
        return 7;
    }
    else {
        return this->offset;
    }
}

std::string MonthModel::getMonthYearText()
{
    int yearUInt        = static_cast<decltype(yearUInt)>(y);
    std::string yearStr = std::to_string(yearUInt);
    std::string monthStr;
    unsigned int monthUInt = unsigned{m};

    switch (monthUInt) {
    case 1:
        monthStr = "January";
        break;
    case 2:
        monthStr = "February";
        break;
    case 3:
        monthStr = "March";
        break;
    case 4:
        monthStr = "April";
        break;
    case 5:
        monthStr = "May";
        break;
    case 6:
        monthStr = "June";
        break;
    case 7:
        monthStr = "July";
        break;
    case 8:
        monthStr = "August";
        break;
    case 9:
        monthStr = "September";
        break;
    case 10:
        monthStr = "October";
        break;
    case 11:
        monthStr = "November";
        break;
    case 12:
        monthStr = "December";
        break;
    default:
        monthStr = "";
    }

    return monthStr + " " + yearStr;
}