Vuo  2.4.0
VuoTimeUnit.c
Go to the documentation of this file.
1
10#include "type.h"
11#include "VuoTimeUnit.h"
12#include "VuoList_VuoTimeUnit.h"
13
15#ifdef VUO_COMPILER
17 "title" : "Time Unit",
18 "description" : "A delineation of time.",
19 "keywords" : [ ],
20 "version" : "1.0.0",
21 "dependencies" : [
22 "VuoList_VuoTimeUnit"
23 ]
24 });
25#endif
27
36{
37 const char *valueAsString = "";
38 if (json_object_get_type(js) == json_type_string)
39 valueAsString = json_object_get_string(js);
40
41 VuoTimeUnit value = VuoTimeUnit_Millennium;
42
43 if (strcmp(valueAsString, "century") == 0)
44 value = VuoTimeUnit_Century;
45 else if (strcmp(valueAsString, "decade") == 0)
46 value = VuoTimeUnit_Decade;
47 else if (strcmp(valueAsString, "year") == 0)
48 value = VuoTimeUnit_Year;
49 else if (strcmp(valueAsString, "quarter") == 0)
50 value = VuoTimeUnit_Quarter;
51 else if (strcmp(valueAsString, "month") == 0)
52 value = VuoTimeUnit_Month;
53 else if (strcmp(valueAsString, "week-sunday") == 0)
54 value = VuoTimeUnit_WeekSunday;
55 else if (strcmp(valueAsString, "week-monday") == 0)
56 value = VuoTimeUnit_WeekMonday;
57 else if (strcmp(valueAsString, "day") == 0)
58 value = VuoTimeUnit_Day;
59 else if (strcmp(valueAsString, "hour") == 0)
60 value = VuoTimeUnit_Hour;
61 else if (strcmp(valueAsString, "half-hour") == 0)
62 value = VuoTimeUnit_HalfHour;
63 else if (strcmp(valueAsString, "quarter-hour") == 0)
64 value = VuoTimeUnit_QuarterHour;
65 else if (strcmp(valueAsString, "minute") == 0)
66 value = VuoTimeUnit_Minute;
67 else if (strcmp(valueAsString, "second") == 0)
68 value = VuoTimeUnit_Second;
69
70 return value;
71}
72
77{
78 char *valueAsString = "millennium";
79
80 if (value == VuoTimeUnit_Century)
81 valueAsString = "century";
82 else if (value == VuoTimeUnit_Decade)
83 valueAsString = "decade";
84 else if (value == VuoTimeUnit_Year)
85 valueAsString = "year";
86 else if (value == VuoTimeUnit_Quarter)
87 valueAsString = "quarter";
88 else if (value == VuoTimeUnit_Month)
89 valueAsString = "month";
90 else if (value == VuoTimeUnit_WeekSunday)
91 valueAsString = "week-sunday";
92 else if (value == VuoTimeUnit_WeekMonday)
93 valueAsString = "week-monday";
94 else if (value == VuoTimeUnit_Day)
95 valueAsString = "day";
96 else if (value == VuoTimeUnit_Hour)
97 valueAsString = "hour";
98 else if (value == VuoTimeUnit_HalfHour)
99 valueAsString = "half-hour";
100 else if (value == VuoTimeUnit_QuarterHour)
101 valueAsString = "quarter-hour";
102 else if (value == VuoTimeUnit_Minute)
103 valueAsString = "minute";
104 else if (value == VuoTimeUnit_Second)
105 valueAsString = "second";
106
107 return json_object_new_string(valueAsString);
108}
109
114{
116 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Millennium);
117 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Century);
118 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Decade);
119 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Year);
120 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Quarter);
121 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Month);
122 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_WeekSunday);
123 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_WeekMonday);
124 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Day);
125 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Hour);
126 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_HalfHour);
127 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_QuarterHour);
128 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Minute);
129 VuoListAppendValue_VuoTimeUnit(l, VuoTimeUnit_Second);
130 return l;
131}
132
137{
138 char *valueAsString = "Millennium";
139
140 if (value == VuoTimeUnit_Century)
141 valueAsString = "Century";
142 else if (value == VuoTimeUnit_Decade)
143 valueAsString = "Decade";
144 else if (value == VuoTimeUnit_Year)
145 valueAsString = "Year";
146 else if (value == VuoTimeUnit_Quarter)
147 valueAsString = "Quarter";
148 else if (value == VuoTimeUnit_Month)
149 valueAsString = "Month";
150 else if (value == VuoTimeUnit_WeekSunday)
151 valueAsString = "Week (Sunday–Saturday)";
152 else if (value == VuoTimeUnit_WeekMonday)
153 valueAsString = "Week (Monday–Sunday)";
154 else if (value == VuoTimeUnit_Day)
155 valueAsString = "Day";
156 else if (value == VuoTimeUnit_Hour)
157 valueAsString = "Hour";
158 else if (value == VuoTimeUnit_HalfHour)
159 valueAsString = "Half Hour";
160 else if (value == VuoTimeUnit_QuarterHour)
161 valueAsString = "Quarter Hour";
162 else if (value == VuoTimeUnit_Minute)
163 valueAsString = "Minute";
164 else if (value == VuoTimeUnit_Second)
165 valueAsString = "Second";
166
167 return strdup(valueAsString);
168}
169
178{
179 if (value == VuoTimeUnit_Millennium)
180 return 60ULL * 60 * 24 * 365 * 1000;
181 else if (value == VuoTimeUnit_Century)
182 return 60ULL * 60 * 24 * 365 * 100;
183 else if (value == VuoTimeUnit_Decade)
184 return 60ULL * 60 * 24 * 365 * 10;
185 else if (value == VuoTimeUnit_Year)
186 return 60ULL * 60 * 24 * 365;
187 else if (value == VuoTimeUnit_Quarter)
188 return 60ULL * 60 * 24 * 121;
189 else if (value == VuoTimeUnit_Month)
190 return 60ULL * 60 * 24 * 30;
191 else if (value == VuoTimeUnit_WeekSunday)
192 return 60ULL * 60 * 24 * 7;
193 else if (value == VuoTimeUnit_WeekMonday)
194 return 60ULL * 60 * 24 * 7;
195 else if (value == VuoTimeUnit_Day)
196 return 60ULL * 60 * 24;
197 else if (value == VuoTimeUnit_Hour)
198 return 60ULL * 60;
199 else if (value == VuoTimeUnit_HalfHour)
200 return 60ULL * 30;
201 else if (value == VuoTimeUnit_QuarterHour)
202 return 60ULL * 15;
203 else if (value == VuoTimeUnit_Minute)
204 return 60ULL;
205 else //if (value == VuoTimeUnit_Second)
206 return 1ULL;
207}
208
212bool VuoTimeUnit_areEqual(const VuoTimeUnit valueA, const VuoTimeUnit valueB)
213{
214 return valueA == valueB;
215}
216
220bool VuoTimeUnit_isLessThan(const VuoTimeUnit valueA, const VuoTimeUnit valueB)
221{
222 // Since time units are listed in reverse order of brevity in the enum,
223 // reverse the comparison operator here so that briefer time units are
224 // considered less than lengthier time units.
225 return valueA > valueB;
226}
227