summaryrefslogtreecommitdiff
path: root/library/timestring.h
Side-by-side diff
Diffstat (limited to 'library/timestring.h') (more/less context) (ignore whitespace changes)
-rw-r--r--library/timestring.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/library/timestring.h b/library/timestring.h
new file mode 100644
index 0000000..fd06d5b
--- a/dev/null
+++ b/library/timestring.h
@@ -0,0 +1,131 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+#ifndef _TIMESTRING_H_
+#define _TIMESTRING_H_
+#include <qdatetime.h>
+#include <qstring.h>
+
+// return a string with the time based on whether or not you want
+// you want it in 12 hour form. if ampm is true, then return
+// it in 12 hour (am/pm) form otherwise return it in 24 hour form
+// in theory Qt 3,0 handles this better (hopefully obsoleteing this)
+class DateFormat
+{
+public:
+ // date format type 001,010,100 = day month year
+ enum Order {
+ DayMonthYear = 0x0111, // 0x001 + 0x010(0x2 << 3) + 0x100(0x4 << 3)
+ MonthDayYear = 0x010A,
+ YearMonthDay = 0x0054
+ };
+
+ DateFormat(QChar s = '/', Order so = MonthDayYear) : _shortOrder(so),
+ _longOrder(so), _shortSeparator(s) { }
+ DateFormat(QChar s, Order so, Order lo) : _shortOrder(so),
+ _longOrder(lo), _shortSeparator(s) { }
+ DateFormat(const DateFormat &o) : _shortOrder(o._shortOrder),
+ _longOrder(o._longOrder), _shortSeparator(o._shortSeparator) { }
+
+ bool operator==(const DateFormat &o)
+ {
+ if (o._shortOrder == _shortOrder && o._longOrder == _longOrder &&
+ o._shortSeparator == _shortSeparator)
+ return TRUE;
+ return FALSE;
+ }
+
+ // verbosity specifiers
+ enum Verbosity {
+ shortNumber = 0x01, // default
+ longNumber = 0x02,
+
+ padNumber = 0x04,
+
+ shortWord = 0x08, // default
+ longWord = 0x10,
+
+ showWeekDay = 0x20
+ };
+
+ QString toNumberString() const; // the M/D/Y string.
+ QString toWordString() const; // the Month day, year string.
+
+ QString numberDate(const QDate &d, int v = 0) const;
+ QString wordDate(const QDate &d, int v = 0) const;
+
+#ifndef QT_NO_DATASTREAM
+ void load(QDataStream&);
+ void save(QDataStream&) const;
+#endif
+
+ QChar separator() const { return _shortSeparator; };
+ Order shortOrder() const { return _shortOrder; };
+ Order longOrder() const { return _longOrder; };
+
+private:
+ Order _shortOrder;
+ Order _longOrder;
+ QChar _shortSeparator;
+};
+
+#ifndef QT_NO_DATASTREAM
+QDataStream &operator<<(QDataStream &s, const DateFormat&df);
+QDataStream &operator>>(QDataStream &s, DateFormat&df);
+#endif
+
+class TimeString
+{
+public:
+
+ //enum DateFormat { MonthDayYear, DayMonthYear, ISO8601,
+ //YearMonthDay = ISO8601 };
+
+
+ static QString shortDate( const QDate &d )
+ { return shortDate( d, currentDateFormat() ); }
+ static QString dateString( const QDate &d )
+ { return dateString( d, currentDateFormat() ); }
+ static QString longDateString( const QDate &d )
+ { return longDateString( d, currentDateFormat() ); }
+ static QString dateString( const QDateTime &dt, bool ampm, bool seconds )
+ { return dateString( dt, ampm, seconds, currentDateFormat() ); }
+
+ static QString dateString( const QDateTime &t, bool ampm = false );
+ static QString timeString( const QTime &t, bool ampm, bool seconds );
+ static QString timeString( const QTime &t, bool ampm = false );
+ static QString shortTime( bool ampm, bool seconds );
+ static QString shortTime( bool ampm = false );
+
+
+
+ static QString shortDate( const QDate &, DateFormat );
+ static QString dateString( const QDate &, DateFormat );
+ static QString longDateString( const QDate &, DateFormat );
+
+ static DateFormat currentDateFormat();
+
+private:
+ static QString dateString( const QDateTime &t, bool ampm, bool seconds, DateFormat );
+
+
+};
+#endif
+