17 "title" :
"Relative Date-Time",
18 "description" :
"An offset from a Date-Time.",
22 "VuoList_VuoRelativeTime",
37 return json_object_get_double(js);
45 return json_object_new_double(value);
53 const char *after =
" after";
54 const char *before =
" before";
56 if (fabs(value) < 0.00001)
57 return strdup(
"no offset");
89 if (componentCount == 1)
93 value > 0 ? after : before);
97 else if (componentCount == 2)
102 value > 0 ? after : before);
108 VuoText componentsAndSeparators[componentCount*2];
109 for (
int i = 1; i <= componentCount; ++i)
112 if (i < componentCount)
113 componentsAndSeparators[(i-1)*2 + 1] = (i == componentCount - 1) ?
", and " :
", ";
115 componentsAndSeparators[componentCount*2 - 1] = value > 0 ? after : before;
130 return valueA == valueB;
138 return valueA < valueB;
148 return (((years * 365 + months * 30 + days) * 24 + hours) * 60 + minutes) * 60 + seconds;
173 *years = (
VuoInteger)relativeTime / yearLength;
174 relativeTime = fmod(relativeTime, yearLength);
177 *months = (
VuoInteger)relativeTime / monthLength;
178 relativeTime = fmod(relativeTime, monthLength);
182 relativeTime = fmod(relativeTime, dayLength);
185 *hours = (
VuoInteger)relativeTime / hourLength;
186 relativeTime = fmod(relativeTime, hourLength);
189 *minutes = (
VuoInteger)relativeTime / minuteLength;
192 *seconds = fmod(relativeTime, 60);