BDS Public
Beam-lib  2.16.3
This is the Beam C++ class library.
BDate.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * BDate.h Date class
3  * T.Barnaby, BEAM Ltd, 2009-08-14
4  * Copyright (c) 2012 All Right Reserved, Beam Ltd, http://www.beam.ltd.uk
5  *******************************************************************************
6  */
7 #ifndef BDate_H
8 #define BDate_H 1
9 
10 #include <stdint.h>
11 #include <BError.h>
12 
13 class BDateMs;
14 
15 class BDate {
16 public:
17  BDate(int year = 0, int month = 1, int day = 1);
18  BDate(BString str);
19  ~BDate();
20 
21  void clear();
22  void setFirst();
23  void setLast();
24 
25  void set(time_t time);
26  void set(int year = 0, int month = 1, int day = 1);
27  void setYDay(int year = 0, int yday = 0);
28  void setNow();
29 
30  int year();
31  int yday();
32  int month();
33  int day();
34 
35  void getDate(int& year, int& mon, int& day);
36 
37  BString getString();
39  BError setString(BString str);
40 
41  int isSet(){ return oyear != 0; }
42  int compare(const BDate& date) const;
43 
44  operator BString(){ return getString(); }
45 
46  int operator==(const BDate& date) const { return (compare(date) == 0); }
47  int operator!=(const BDate& date) const { return (compare(date) != 0); }
48  int operator>(const BDate& date) const { return (compare(date) > 0); }
49  int operator>=(const BDate& date) const { return (compare(date) >= 0); }
50  int operator<(const BDate& date) const { return (compare(date) < 0); }
51  int operator<=(const BDate& date) const { return (compare(date) <= 0); }
52 
53  static int isLeap(int year);
54  static int daysInMonth(int year, int month);
55 
56 public:
57  uint16_t oyear;
58  uint16_t oyday;
59 };
60 
61 // String conversion functions
62 void toBString(BDate& v, BString& s);
63 void fromBString(BString& s, BDate& v);
64 
65 #endif
static int daysInMonth(int year, int month)
Definition: BDate-1.cpp:207
int month()
Definition: BDate-1.cpp:79
static int isLeap(int year)
Definition: BDate-1.cpp:203
void fromBString(BString &s, BDate &v)
Definition: BDate-1.cpp:218
Definition: BString.h:18
BError setString(BString str)
Set the time from an ISO date/time.
Definition: BDate-1.cpp:136
int isSet()
Definition: BDate.h:41
int operator<=(const BDate &date) const
Definition: BDate.h:51
int operator!=(const BDate &date) const
Definition: BDate.h:47
void getDate(int &year, int &mon, int &day)
Definition: BDate-1.cpp:182
BDate(int year=0, int month=1, int day=1)
Definition: BDate-1.cpp:16
int operator>(const BDate &date) const
Definition: BDate.h:48
BString getString()
Get the time as an ISO date/time string.
Definition: BDate-1.cpp:100
void setFirst()
Set the first date available.
Definition: BDate-1.cpp:35
uint16_t oyday
Day in year (0 .. 365)
Definition: BDate.h:58
uint16_t oyear
Year (0 .. 65535)
Definition: BDate.h:57
int operator==(const BDate &date) const
Definition: BDate.h:46
int compare(const BDate &date) const
Compare two dates.
Definition: BDate-1.cpp:188
int operator>=(const BDate &date) const
Definition: BDate.h:49
Definition: BDate.h:15
BUInt32 format
Definition: BFirmware.h:33
BString getStringFormatted(BString format)
Gets the time in a string form as per the format. Format syntax as per strftime()
Definition: BDate-1.cpp:113
~BDate()
Definition: BDate-1.cpp:27
int yday()
Definition: BDate-1.cpp:96
void clear()
Clear the date/time.
Definition: BDate-1.cpp:30
int operator<(const BDate &date) const
Definition: BDate.h:50
void setLast()
Set the last date available.
Definition: BDate-1.cpp:39
Definition: BError.h:25
void set(time_t time)
Set time using Unix time (seconds from 1970-01-01)
Definition: BDate-1.cpp:48
void setYDay(int year=0, int yday=0)
Definition: BDate-1.cpp:43
void setNow()
Set the timeStamp to now.
Definition: BDate-1.cpp:62
void toBString(BDate &v, BString &s)
Definition: BDate-1.cpp:214
int year()
Definition: BDate-1.cpp:75
int day()
Definition: BDate-1.cpp:86