/*
- Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2020 Carl Hetherington <cth@carlh.net>
This file is part of libdcp.
#include <boost/date_time/posix_time/posix_time.hpp>
#include <string>
-class local_time_test;
+class local_time_basic_test;
namespace dcp {
{
public:
LocalTime ();
+ explicit LocalTime (struct tm tm);
explicit LocalTime (boost::posix_time::ptime);
LocalTime (boost::posix_time::ptime, int tz_hour, int tz_minute);
explicit LocalTime (std::string);
std::string as_string (bool with_millisecond = false) const;
std::string date () const;
- std::string time_of_day (bool with_millisecond = false) const;
+ std::string time_of_day (bool with_second, bool with_millisecond) const;
+
+ int day () const {
+ return _day;
+ }
+
+ int month () const {
+ return _month;
+ }
+
+ int year () const {
+ return _year;
+ }
+
+ void set_year (int y) {
+ _year = y;
+ }
+
+ void add_days (int d);
+ void add_months (int a);
+ void add_minutes (int a);
bool operator== (LocalTime const & other) const;
bool operator!= (LocalTime const & other) const;
+ bool operator< (LocalTime const & other) const;
private:
- friend class ::local_time_test;
+ friend class ::local_time_basic_test;
+ void set (struct tm const * tm);
+ void set (boost::posix_time::ptime);
void set_local_time_zone ();
/* Local time */
int _second; ///< second number of the minute (0-59)
int _millisecond; ///< millisecond number of the second (0-999)
- int _tz_hour; ///< hours by which this time is offset from UTC
- int _tz_minute; ///< minutes by which this time is offset from UTC
+ int _tz_hour; ///< hours by which this time is offset from UTC; can be negative
+ /** Minutes by which this time is offset from UTC; if _tz_hour is negative
+ * this will be either 0 or negative.
+ */
+ int _tz_minute;
};
std::ostream&