// -*- c++ -*- /* * Jakelib2 - General purpose C++ library * Copyright (C) 2001 Florian Wolff (florian@donuz.de) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * $Id: Date.jlc,v 1.8 2003/09/27 08:10:29 florian Exp $ */ #include "jakelib2.h" #include "jakelib2/util/Date.h" #include "jakelib2/util/TimeZone.h" #include "jakelib2/lang/System.h" #include "jakelib2/lang/Long.h" #include "jakelib2/util/GregorianCalendar.h" #include "jakelib2/text/SimpleDateFormat.h" using namespace jakelib::lang; using namespace jakelib::util; using namespace jakelib::text; JAKELIB_IMPLEMENT_CLASS("jakelib.util.Date", Date, Object); DateFormat* Date::dateFormatter = null; #pragma javasyntax /*****************************************************************************\ * Date | *****************************************************************************/ Date::Date() { millis = System::currentTimeMillis(); } Date::Date(jlong millis) { this->millis = millis; } /*****************************************************************************\ * toString | *****************************************************************************/ String* Date::toString() { GregorianCalendar cal(millis); if (dateFormatter == null) { // FIXME: TimeZone info: "EEE MMM dd HH:mm:ss zzz yyyy" dateFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy", Locale::US); } return dateFormatter->format(this); } /*****************************************************************************\ * getTime | *****************************************************************************/ jlong Date::getTime() { return millis; } /*****************************************************************************\ * after | *****************************************************************************/ jboolean Date::after(Date *other) { return (this->millis > other->millis); } /*****************************************************************************\ * before | *****************************************************************************/ jboolean Date::before(Date *other) { return (this->millis < other->millis); } /*****************************************************************************\ * equals | *****************************************************************************/ jboolean Date::equals(Object *obj) { if (obj->instanceOf(`"jakelib.util.Date"`)) { Date *other = (Date*) obj; return (this->millis == other->millis); } else { return false; } }