Vuo  2.0.0
VuoTimeFormat.c
Go to the documentation of this file.
1 
10 #include "type.h"
11 #include "VuoTime.h"
12 #include "VuoTimeFormat.h"
13 #include "VuoList_VuoTimeFormat.h"
14 
16 #ifdef VUO_COMPILER
18  "title" : "Date-Time Format",
19  "description" : "How to format a Date-Time.",
20  "keywords" : [ ],
21  "version" : "1.0.0",
22  "dependencies" : [
23  "VuoTime",
24  "VuoList_VuoTimeFormat"
25  ]
26  });
27 #endif
28 
38 {
39  const char *valueAsString = "";
40  if (json_object_get_type(js) == json_type_string)
41  valueAsString = json_object_get_string(js);
42 
43  VuoTimeFormat value = VuoTimeFormat_DateTimeSortable;
44 
45  if (strcmp(valueAsString, "datetime-short-24") == 0)
46  value = VuoTimeFormat_DateTimeShort24;
47  else if (strcmp(valueAsString, "datetime-short-12") == 0)
48  value = VuoTimeFormat_DateTimeShort12;
49  else if (strcmp(valueAsString, "datetime-medium-12") == 0)
50  value = VuoTimeFormat_DateTimeMedium12;
51  else if (strcmp(valueAsString, "datetime-medium-24") == 0)
52  value = VuoTimeFormat_DateTimeMedium24;
53  else if (strcmp(valueAsString, "datetime-long-12") == 0)
54  value = VuoTimeFormat_DateTimeLong12;
55  else if (strcmp(valueAsString, "datetime-long-24") == 0)
56  value = VuoTimeFormat_DateTimeLong24;
57  else if (strcmp(valueAsString, "date-short") == 0)
58  value = VuoTimeFormat_DateShort;
59  else if (strcmp(valueAsString, "date-medium") == 0)
60  value = VuoTimeFormat_DateMedium;
61  else if (strcmp(valueAsString, "date-long") == 0)
62  value = VuoTimeFormat_DateLong;
63  else if (strcmp(valueAsString, "time-12") == 0)
64  value = VuoTimeFormat_Time12;
65  else if (strcmp(valueAsString, "time-24") == 0)
66  value = VuoTimeFormat_Time24;
67 
68  return value;
69 }
70 
75 {
76  char *valueAsString = "datetime-sortable";
77 
78  if (value == VuoTimeFormat_DateTimeShort12)
79  valueAsString = "datetime-short-12";
80  else if (value == VuoTimeFormat_DateTimeShort24)
81  valueAsString = "datetime-short-24";
82  else if (value == VuoTimeFormat_DateTimeMedium12)
83  valueAsString = "datetime-medium-12";
84  else if (value == VuoTimeFormat_DateTimeMedium24)
85  valueAsString = "datetime-medium-24";
86  else if (value == VuoTimeFormat_DateTimeLong12)
87  valueAsString = "datetime-long-12";
88  else if (value == VuoTimeFormat_DateTimeLong24)
89  valueAsString = "datetime-long-24";
90  else if (value == VuoTimeFormat_DateShort)
91  valueAsString = "date-short";
92  else if (value == VuoTimeFormat_DateMedium)
93  valueAsString = "date-medium";
94  else if (value == VuoTimeFormat_DateLong)
95  valueAsString = "date-long";
96  else if (value == VuoTimeFormat_Time12)
97  valueAsString = "time-12";
98  else if (value == VuoTimeFormat_Time24)
99  valueAsString = "time-24";
100 
101  return json_object_new_string(valueAsString);
102 }
103 
108 {
110  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateTimeSortable);
111  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateTimeShort12);
112  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateTimeShort24);
113  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateTimeMedium12);
114  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateTimeMedium24);
115  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateTimeLong12);
116  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateTimeLong24);
117  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateShort);
118  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateMedium);
119  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_DateLong);
120  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_Time12);
121  VuoListAppendValue_VuoTimeFormat(l, VuoTimeFormat_Time24);
122  return l;
123 }
124 
129 {
130  VuoText formatted = VuoTime_format(VuoTime_getCurrent(), value);
131  VuoLocal(formatted);
132  if (value == VuoTimeFormat_DateTimeSortable)
133  return VuoText_format("Date & Time — Sortable, UTC (%s)", formatted);
134  else if (value == VuoTimeFormat_DateTimeShort12)
135  return VuoText_format("Date & Time — Short — 12-hour (%s)", formatted);
136  else if (value == VuoTimeFormat_DateTimeShort24)
137  return VuoText_format("Date & Time — Short — 24-hour (%s)", formatted);
138  else if (value == VuoTimeFormat_DateTimeMedium12)
139  return VuoText_format("Date & Time — Medium 12-hour (%s)", formatted);
140  else if (value == VuoTimeFormat_DateTimeMedium24)
141  return VuoText_format("Date & Time — Medium 24-hour (%s)", formatted);
142  else if (value == VuoTimeFormat_DateTimeLong12)
143  return VuoText_format("Date & Time — Long 12-hour (%s)", formatted);
144  else if (value == VuoTimeFormat_DateTimeLong24)
145  return VuoText_format("Date & Time — Long 24-hour (%s)", formatted);
146  else if (value == VuoTimeFormat_DateShort)
147  return VuoText_format("Date — Short (%s)", formatted);
148  else if (value == VuoTimeFormat_DateMedium)
149  return VuoText_format("Date — Medium (%s)", formatted);
150  else if (value == VuoTimeFormat_DateLong)
151  return VuoText_format("Date — Long (%s)", formatted);
152  else if (value == VuoTimeFormat_Time12)
153  return VuoText_format("Time — 12-hour (%s)", formatted);
154  else if (value == VuoTimeFormat_Time24)
155  return VuoText_format("Time — 24-hour (%s)", formatted);
156  else
157  return strdup(formatted);
158 }
159 
163 bool VuoTimeFormat_areEqual(const VuoTimeFormat valueA, const VuoTimeFormat valueB)
164 {
165  return valueA == valueB;
166 }
167 
171 bool VuoTimeFormat_isLessThan(const VuoTimeFormat valueA, const VuoTimeFormat valueB)
172 {
173  return valueA < valueB;
174 }