summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/core/otimezone.cpp
Side-by-side diff
Diffstat (limited to 'libopie2/opiepim/core/otimezone.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/core/otimezone.cpp168
1 files changed, 105 insertions, 63 deletions
diff --git a/libopie2/opiepim/core/otimezone.cpp b/libopie2/opiepim/core/otimezone.cpp
index dab68af..e67715f 100644
--- a/libopie2/opiepim/core/otimezone.cpp
+++ b/libopie2/opiepim/core/otimezone.cpp
@@ -27,76 +27,90 @@
Boston, MA 02111-1307, USA.
*/
+#include "otimezone.h"
+
+/* STD */
#include <stdio.h>
#include <stdlib.h>
-
#include <sys/types.h>
-#include <opie2/otimezone.h>
-
-namespace Opie {
+namespace Opie
+{
- QDateTime utcTime( time_t t) {
- tm* broken = ::gmtime( &t );
- QDateTime ret;
- ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) );
- ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
- return ret;
- }
- QDateTime utcTime( time_t t, const QString& zone) {
- QCString org = ::getenv( "TZ" );
+QDateTime utcTime( time_t t )
+{
+ tm * broken = ::gmtime( &t );
+ QDateTime ret;
+ ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon + 1, broken->tm_mday ) );
+ ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
+ return ret;
+}
+QDateTime utcTime( time_t t, const QString& zone )
+{
+ QCString org = ::getenv( "TZ" );
#ifndef Q_OS_MACX // Following line causes bus errors on Mac
- ::setenv( "TZ", zone.latin1(), true );
- ::tzset();
- tm* broken = ::localtime( &t );
- ::setenv( "TZ", org, true );
+ ::setenv( "TZ", zone.latin1(), true );
+ ::tzset();
+
+ tm* broken = ::localtime( &t );
+ ::setenv( "TZ", org, true );
#else
#warning "Need a replacement for MacOSX!!"
- tm* broken = ::localtime( &t );
+
+ tm* broken = ::localtime( &t );
#endif
- QDateTime ret;
- ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) );
- ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
-
- return ret;
- }
- time_t to_Time_t( const QDateTime& utc, const QString& str ) {
- QDate d = utc.date();
- QTime t = utc.time();
-
- tm broken;
- broken.tm_year = d.year() - 1900;
- broken.tm_mon = d.month() - 1;
- broken.tm_mday = d.day();
- broken.tm_hour = t.hour();
- broken.tm_min = t.minute();
- broken.tm_sec = t.second();
-
- QCString org = ::getenv( "TZ" );
+ QDateTime ret;
+ ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon + 1, broken->tm_mday ) );
+ ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
+
+ return ret;
+}
+time_t to_Time_t( const QDateTime& utc, const QString& str )
+{
+ QDate d = utc.date();
+ QTime t = utc.time();
+
+ tm broken;
+ broken.tm_year = d.year() - 1900;
+ broken.tm_mon = d.month() - 1;
+ broken.tm_mday = d.day();
+ broken.tm_hour = t.hour();
+ broken.tm_min = t.minute();
+ broken.tm_sec = t.second();
+
+ QCString org = ::getenv( "TZ" );
#ifndef Q_OS_MACX // Following line causes bus errors on Mac
- ::setenv( "TZ", str.latin1(), true );
- ::tzset();
- time_t ti = ::mktime( &broken );
- ::setenv( "TZ", org, true );
+ ::setenv( "TZ", str.latin1(), true );
+ ::tzset();
+
+ time_t ti = ::mktime( &broken );
+ ::setenv( "TZ", org, true );
#else
#warning "Need a replacement for MacOSX!!"
- time_t ti = ::mktime( &broken );
+
+ time_t ti = ::mktime( &broken );
#endif
- return ti;
- }
-}
-namespace Opie {
-OTimeZone::OTimeZone( const ZoneName& zone )
- : m_name(zone) {
+ return ti;
}
-OTimeZone::~OTimeZone() {
}
-bool OTimeZone::isValid()const {
+namespace Opie
+{
+OTimeZone::OTimeZone( const ZoneName& zone )
+ : m_name( zone )
+{}
+
+
+OTimeZone::~OTimeZone()
+{}
+
+
+bool OTimeZone::isValid() const
+{
return !m_name.isEmpty();
}
@@ -104,42 +118,70 @@ bool OTimeZone::isValid()const {
* we will get the current timezone
* and ask it to convert to the timezone date
*/
-QDateTime OTimeZone::toLocalDateTime( const QDateTime& dt) {
+QDateTime OTimeZone::toLocalDateTime( const QDateTime& dt )
+{
return OTimeZone::current().toDateTime( dt, *this );
}
-QDateTime OTimeZone::toUTCDateTime( const QDateTime& dt ) {
+
+
+QDateTime OTimeZone::toUTCDateTime( const QDateTime& dt )
+{
return OTimeZone::utc().toDateTime( dt, *this );
}
-QDateTime OTimeZone::fromUTCDateTime( time_t t) {
+
+
+QDateTime OTimeZone::fromUTCDateTime( time_t t )
+{
return utcTime( t );
}
-QDateTime OTimeZone::toDateTime( time_t t) {
+
+
+QDateTime OTimeZone::toDateTime( time_t t )
+{
return utcTime( t, m_name );
}
+
+
/*
* convert dt to utc using zone.m_name
* convert utc -> timeZoneDT using this->m_name
*/
-QDateTime OTimeZone::toDateTime( const QDateTime& dt, const OTimeZone& zone ) {
+QDateTime OTimeZone::toDateTime( const QDateTime& dt, const OTimeZone& zone )
+{
time_t utc = to_Time_t( dt, zone.m_name );
- qWarning("%d %s", utc, zone.m_name.latin1() );
+ qWarning( "%d %s", utc, zone.m_name.latin1() );
return utcTime( utc, m_name );
}
-time_t OTimeZone::fromDateTime( const QDateTime& time ) {
+
+
+time_t OTimeZone::fromDateTime( const QDateTime& time )
+{
return to_Time_t( time, m_name );
}
-time_t OTimeZone::fromUTCDateTime( const QDateTime& time ) {
+
+
+time_t OTimeZone::fromUTCDateTime( const QDateTime& time )
+{
return to_Time_t( time, "UTC" );
}
-OTimeZone OTimeZone::current() {
- QCString str = ::getenv("TZ");
+
+
+OTimeZone OTimeZone::current()
+{
+ QCString str = ::getenv( "TZ" );
OTimeZone zone( str );
return zone;
}
-OTimeZone OTimeZone::utc() {
- return OTimeZone("UTC");
+
+
+OTimeZone OTimeZone::utc()
+{
+ return OTimeZone( "UTC" );
}
-QString OTimeZone::timeZone()const {
+
+
+QString OTimeZone::timeZone() const
+{
return m_name;
}