summaryrefslogtreecommitdiff
path: root/times.h
diff options
context:
space:
mode:
Diffstat (limited to 'times.h')
-rw-r--r--times.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/times.h b/times.h
new file mode 100644
index 00000000..953d3d4d
--- /dev/null
+++ b/times.h
@@ -0,0 +1,41 @@
+#ifndef _TIMES_H
+#define _TIMES_H
+
+#include <boost/date_time/posix_time/posix_time.hpp>
+#include <boost/date_time/posix_time/posix_time_duration.hpp>
+#include <boost/date_time/posix_time/posix_time_config.hpp>
+#include <boost/date_time/local_time_adjustor.hpp>
+
+#include <ctime>
+#include <string>
+
+namespace ledger {
+
+using namespace boost::posix_time;
+using namespace boost::date_time;
+
+typedef ptime::time_duration_type time_duration;
+
+class interval_t {};
+
+inline ptime ptime_local_to_utc(const ptime& when) {
+ struct std::tm tm_gmt = to_tm(when);
+ return from_time_t(std::mktime(&tm_gmt));
+}
+
+// jww (2007-04-18): I need to make a general parsing function
+// instead, and then make these into private methods.
+inline ptime ptime_from_local_date_string(const std::string& date_string) {
+ return ptime_local_to_utc(ptime(boost::gregorian::from_string(date_string),
+ time_duration()));
+}
+
+inline ptime ptime_from_local_time_string(const std::string& time_string) {
+ return ptime_local_to_utc(time_from_string(time_string));
+}
+
+extern ptime now;
+
+}
+
+#endif /* _TIMES_H */