aboutsummaryrefslogtreecommitdiff
path: root/include/datetime/date-time.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/datetime/date-time.h')
-rw-r--r--include/datetime/date-time.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/include/datetime/date-time.h b/include/datetime/date-time.h
index 4be35f7..7dfc207 100644
--- a/include/datetime/date-time.h
+++ b/include/datetime/date-time.h
@@ -36,15 +36,21 @@ class DateTime
{
public:
static DateTime NowLocal();
- static DateTime Local(int years, int months, int days, int hours, int minutes, int seconds);
+ static DateTime Local(int year, int month, int day, int hour, int minute, double seconds);
+ DateTime();
explicit DateTime(time_t t);
- explicit DateTime(GDateTime* in=nullptr);
- DateTime& operator=(GDateTime* in);
+ DateTime(GTimeZone* tz, GDateTime* dt);
+ DateTime(GTimeZone* tz, int year, int month, int day, int hour, int minute, double seconds);
DateTime& operator=(const DateTime& in);
DateTime to_timezone(const std::string& zone) const;
- DateTime add_full(int years, int months, int days, int hours, int minutes, double seconds) const;
- void reset(GDateTime* in=nullptr);
+ DateTime start_of_month() const;
+ DateTime start_of_day() const;
+ DateTime start_of_minute() const;
+ DateTime end_of_day() const;
+ DateTime end_of_month() const;
+ DateTime add_days(int days) const;
+ DateTime add_full(int year, int month, int day, int hour, int minute, double seconds) const;
GDateTime* get() const;
GDateTime* operator()() const {return get();}
@@ -66,9 +72,11 @@ public:
static bool is_same_day(const DateTime& a, const DateTime& b);
static bool is_same_minute(const DateTime& a, const DateTime& b);
- bool is_set() const { return m_dt != nullptr; }
+ bool is_set() const { return m_tz && m_dt; }
private:
+ void reset(GTimeZone*, GDateTime*);
+ std::shared_ptr<GTimeZone> m_tz;
std::shared_ptr<GDateTime> m_dt;
};