#ifndef _DATETIME_H #define _DATETIME_H #include "ledger.h" #include namespace ledger { struct interval_t { int years; int months; int seconds; interval_t(int _seconds = 0, int _months = 0, int _years = 0) : years(_years), months(_months), seconds(_seconds) {} operator bool() const { return seconds > 0 || months > 0 || years > 0; } std::time_t increment(const std::time_t); static interval_t parse(std::istream& in, std::time_t * begin, std::time_t * end); }; extern std::time_t now; extern int now_year; bool parse_date_mask(const char * date_str, struct std::tm * result); bool parse_date(const char * date_str, std::time_t * result, const int year = -1); bool quick_parse_date(char * date_str, std::time_t * result); } // namespace ledger #endif // _DATETIME_H