// src/DateTime.hh // This file is part of libpbe; see http://decimail.org // (C) 2006 Philip Endecott // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef libpbe_DateTime_hh #define libpbe_DateTime_hh #include #include #include "Date.hh" #include "Time.hh" #include "Exception.hh" namespace pbe { struct DateTime { Date date; Time time; DateTime() {} DateTime(int year, int month, int day, int hour=0, int minute=0, int second=0): date(year,month,day), time(hour,minute,second) {} DateTime(time_t t) { struct tm b; localtime_r(&t, &b); // Or gmtime_r() ??? date.year = b.tm_year + 1900; date.month = b.tm_mon + 1; date.day = b.tm_mday; time.hour = b.tm_hour; time.minute = b.tm_min; time.second = b.tm_sec; } DateTime(Date date_): date(date_), time(0,0,0) {} DateTime(Date date_, Time time_): date(date_), time(time_) {} bool operator<(const DateTime& rhs) const { return (date