AceTime  0.1
Date and time classes for Arduino that supports the TZ DAtabase, and a system clock synchronized from an NTP server or an RTC chip.
OffsetDateTime.cpp
1 #include "common/util.h"
2 #include "common/DateStrings.h"
3 #include "LocalDateTime.h"
4 #include "OffsetDateTime.h"
5 
6 namespace ace_time {
7 
8 using common::printPad2;
9 using common::DateStrings;
10 
11 void OffsetDateTime::printTo(Print& printer) const {
12  if (isError()) {
13  printer.print(F("<Invalid OffsetDateTime>"));
14  return;
15  }
16 
17  // Date
18  printer.print(mLocalDateTime.year());
19  printer.print('-');
20  printPad2(printer, mLocalDateTime.month());
21  printer.print('-');
22  printPad2(printer, mLocalDateTime.day());
23 
24  // 'T' separator
25  printer.print('T');
26 
27  // Time
28  printPad2(printer, mLocalDateTime.hour());
29  printer.print(':');
30  printPad2(printer, mLocalDateTime.minute());
31  printer.print(':');
32  printPad2(printer, mLocalDateTime.second());
33 
34  // TimeOffset
35  mTimeOffset.printTo(printer);
36  printer.print(' ');
37 
38  // Week day
39  DateStrings ds;
40  printer.print(ds.weekDayLongString(dayOfWeek()));
41 }
42 
44  if (strlen(dateString) < kDateStringLength) {
45  return forError();
46  }
47  return forDateStringChainable(dateString);
48 }
49 
50 OffsetDateTime OffsetDateTime::forDateStringChainable(const char*& dateString) {
51  const char* s = dateString;
52 
53  LocalDateTime ldt = LocalDateTime::forDateStringChainable(s);
54  TimeOffset offset = TimeOffset::forOffsetStringChainable(s);
55 
56  dateString = s;
57  return OffsetDateTime(ldt, offset);
58 }
59 
60 }
uint8_t hour() const
Return the hour.
uint8_t month() const
Return the month with January=1, December=12.
uint8_t dayOfWeek() const
Return the day of the week, Monday=1, Sunday=7 (per ISO 8601).
uint8_t second() const
Return the second.
uint8_t minute() const
Return the minute.
OffsetDateTime()
Constructor.
int16_t year() const
Return the year.
uint8_t day() const
Return the day of the month.
The date (year, month, day) and time (hour, minute, second) fields representing the time with an offs...
bool isError() const
Return true if any component indicates an error condition.
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC...
Definition: TimeOffset.h:53
void printTo(Print &printer) const
Print OffsetDateTime to &#39;printer&#39; in ISO 8601 format.
void printTo(Print &printer) const
Print the human readable string.
Definition: TimeOffset.cpp:10
static OffsetDateTime forError()
Factory method that returns an instance whose isError() is true.
static OffsetDateTime forDateString(const char *dateString)
Factory method.