summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/core/opimtimezone.h
Unidiff
Diffstat (limited to 'libopie2/opiepim/core/opimtimezone.h') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiepim/core/opimtimezone.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/libopie2/opiepim/core/opimtimezone.h b/libopie2/opiepim/core/opimtimezone.h
new file mode 100644
index 0000000..284e80f
--- a/dev/null
+++ b/libopie2/opiepim/core/opimtimezone.h
@@ -0,0 +1,107 @@
1/*
2 This file is part of the Opie Project
3 Copyright (C) The Main Author <main-author@whereever.org>
4 =. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5 .=l.
6 .>+-=
7 _;:, .> :=|. This program is free software; you can
8.> <`_, > . <= redistribute it and/or modify it under
9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
10.="- .-=="i, .._ License as published by the Free Software
11 - . .-<_> .<> Foundation; either version 2 of the License,
12 ._= =} : or (at your option) any later version.
13 .%`+i> _;_.
14 .i_,=:_. -<s. This program is distributed in the hope that
15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
16 : .. .:, . . . without even the implied warranty of
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more
20++= -. .` .: details.
21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA.
28*/
29
30#ifndef OTIMEZONE_H
31#define OTIMEZONE_H
32
33/* QT */
34#include <qdatetime.h>
35
36/* STD */
37#include <time.h>
38
39namespace Opie
40{
41/**
42 * A very primitive class to convert time
43 * from one timezone to another
44 * and to localtime
45 * and time_t
46 */
47class OPimTimeZone {
48
49 public:
50 typedef QString ZoneName;
51 OPimTimeZone( const ZoneName& = ZoneName::null );
52 virtual ~OPimTimeZone(); // just in case.
53
54 bool isValid()const;
55
56 /**
57 * converts the QDateTime to a DateTime
58 * in the local timezone
59 * if QDateTime is 25th Jan and takes place in Europe/Berlin at 12h
60 * and the current timezone is Europe/London the returned
61 * time will be 11h.
62 */
63 QDateTime toLocalDateTime( const QDateTime& dt );
64
65 /**
66 * converts the QDateTime to UTC time
67 */
68 QDateTime toUTCDateTime( const QDateTime& dt );
69
70 /**
71 * reads the time_t into a QDateTime using UTC as timezone!
72 */
73 QDateTime fromUTCDateTime( time_t );
74
75 /**
76 * converts the time_t to the time in the timezone
77 */
78 QDateTime toDateTime( time_t );
79
80 /**
81 * converts the QDateTime from one timezone to this timeZone
82 */
83 QDateTime toDateTime( const QDateTime&, const OPimTimeZone& timeZone );
84
85 /**
86 * converts the date time into a time_t. It takes the timezone into account
87 */
88 time_t fromDateTime( const QDateTime& );
89
90 /**
91 * converts the datetime with timezone UTC
92 */
93 time_t fromUTCDateTime( const QDateTime& );
94
95 static OPimTimeZone current();
96 static OPimTimeZone utc();
97
98 QString timeZone() const;
99
100 private:
101 ZoneName m_name;
102 class Private;
103 Private* d;
104};
105};
106
107#endif