summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/core/oconversion.cpp
Unidiff
Diffstat (limited to 'libopie2/opiepim/core/oconversion.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiepim/core/oconversion.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/libopie2/opiepim/core/oconversion.cpp b/libopie2/opiepim/core/oconversion.cpp
index b7eebef..160c2c6 100644
--- a/libopie2/opiepim/core/oconversion.cpp
+++ b/libopie2/opiepim/core/oconversion.cpp
@@ -1,15 +1,14 @@
1/* 1/*
2 This file is part of the Opie Project 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> 3 =. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5 .=l. 4 .=l.
6 .>+-= 5 .>+-=
7 _;:, .> :=|. This program is free software; you can 6 _;:, .> :=|. This program is free software; you can
8.> <`_, > . <= redistribute it and/or modify it under 7.> <`_, > . <= redistribute it and/or modify it under
9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public 8:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
10.="- .-=="i, .._ License as published by the Free Software 9.="- .-=="i, .._ License as published by the Free Software
11 - . .-<_> .<> Foundation; either version 2 of the License, 10 - . .-<_> .<> Foundation; either version 2 of the License,
12 ._= =} : or (at your option) any later version. 11 ._= =} : or (at your option) any later version.
13 .%`+i> _;_. 12 .%`+i> _;_.
14 .i_,=:_. -<s. This program is distributed in the hope that 13 .i_,=:_. -<s. This program is distributed in the hope that
15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY; 14 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
@@ -18,113 +17,125 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 17 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 18..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 19++= -. .` .: details.
21 : = ...= . :.=- 20 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 21 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 22 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 23 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
28*/ 27*/
29 28
29/* OPIE */
30#include <opie2/oconversion.h> 30#include <opie2/oconversion.h>
31#include <qpe/timeconversion.h> 31#include <qpe/timeconversion.h>
32 32
33 33namespace Opie
34namespace Opie { 34{
35 35
36QString OConversion::dateToString( const QDate &d ) 36QString OConversion::dateToString( const QDate &d )
37{ 37{
38 if ( d.isNull() || !d.isValid() ) 38 if ( d.isNull() || !d.isValid() )
39 return QString::null; 39 return QString::null;
40 40
41 // ISO format in year, month, day (YYYYMMDD); e.g. 20021231 41 // ISO format in year, month, day (YYYYMMDD); e.g. 20021231
42 QString year = QString::number( d.year() ); 42 QString year = QString::number( d.year() );
43 QString month = QString::number( d.month() ); 43 QString month = QString::number( d.month() );
44 month = month.rightJustify( 2, '0' ); 44 month = month.rightJustify( 2, '0' );
45 QString day = QString::number( d.day() ); 45 QString day = QString::number( d.day() );
46 day = day.rightJustify( 2, '0' ); 46 day = day.rightJustify( 2, '0' );
47 47
48 QString str = year + month + day; 48 QString str = year + month + day;
49 //qDebug( "\tPimContact dateToStr = %s", str.latin1() ); 49 //qDebug( "\tPimContact dateToStr = %s", str.latin1() );
50 50
51 return str; 51 return str;
52} 52}
53 53
54
54QDate OConversion::dateFromString( const QString& s ) 55QDate OConversion::dateFromString( const QString& s )
55{ 56{
56 QDate date; 57 QDate date;
57 58
58 if ( s.isEmpty() ) 59 if ( s.isEmpty() )
59 return date; 60 return date;
60 61
61 // Be backward compatible to old Opie format: 62 // Be backward compatible to old Opie format:
62 // Try to load old format. If it fails, try new ISO-Format! 63 // Try to load old format. If it fails, try new ISO-Format!
63 date = TimeConversion::fromString ( s ); 64 date = TimeConversion::fromString ( s );
64 if ( date.isValid() ) 65 if ( date.isValid() )
65 return date; 66 return date;
66 67
67 // Read ISO-Format (YYYYMMDD) 68 // Read ISO-Format (YYYYMMDD)
68 int year = s.mid(0, 4).toInt(); 69 int year = s.mid(0, 4).toInt();
69 int month = s.mid(4,2).toInt(); 70 int month = s.mid(4,2).toInt();
70 int day = s.mid(6,2).toInt(); 71 int day = s.mid(6,2).toInt();
71 72
72 // do some quick sanity checking -eilers 73 // do some quick sanity checking -eilers
73 // but we isValid() again? -zecke 74 // but we isValid() again? -zecke
74 if ( year < 1900 || year > 3000 ) { 75 if ( year < 1900 || year > 3000 )
76 {
75 qWarning( "PimContact year is not in range"); 77 qWarning( "PimContact year is not in range");
76 return date; 78 return date;
77 } 79 }
78 if ( month < 0 || month > 12 ) { 80 if ( month < 0 || month > 12 )
81 {
79 qWarning( "PimContact month is not in range"); 82 qWarning( "PimContact month is not in range");
80 return date; 83 return date;
81 } 84 }
82 if ( day < 0 || day > 31 ) { 85 if ( day < 0 || day > 31 )
86 {
83 qWarning( "PimContact day is not in range"); 87 qWarning( "PimContact day is not in range");
84 return date; 88 return date;
85 } 89 }
86 90
87 date.setYMD( year, month, day ); 91 date.setYMD( year, month, day );
88 if ( !date.isValid() ) { 92 if ( !date.isValid() )
93 {
89 qWarning( "PimContact date is not valid"); 94 qWarning( "PimContact date is not valid");
90 return date; 95 return date;
91 } 96 }
92 97
93 return date; 98 return date;
94} 99}
95QString OConversion::dateTimeToString( const QDateTime& dt ) { 100
96 if (!dt.isValid() || dt.isNull() ) return QString::null; 101
102QString OConversion::dateTimeToString( const QDateTime& dt )
103{
104 if ( !dt.isValid() || dt.isNull() )
105 return QString::null;
97 106
98 QString year = QString::number( dt.date().year() ); 107 QString year = QString::number( dt.date().year() );
99 QString month = QString::number( dt.date().month() ); 108 QString month = QString::number( dt.date().month() );
100 QString day = QString::number( dt.date().day() ); 109 QString day = QString::number( dt.date().day() );
101 110
102 QString hour = QString::number( dt.time().hour() ); 111 QString hour = QString::number( dt.time().hour() );
103 QString min = QString::number( dt.time().minute() ); 112 QString min = QString::number( dt.time().minute() );
104 QString sec = QString::number( dt.time().second() ); 113 QString sec = QString::number( dt.time().second() );
105 114
106 month = month.rightJustify( 2, '0' ); 115 month = month.rightJustify( 2, '0' );
107 day = day. rightJustify( 2, '0' ); 116 day = day. rightJustify( 2, '0' );
108 hour = hour. rightJustify( 2, '0' ); 117 hour = hour. rightJustify( 2, '0' );
109 min = min. rightJustify( 2, '0' ); 118 min = min. rightJustify( 2, '0' );
110 sec = sec. rightJustify( 2, '0' ); 119 sec = sec. rightJustify( 2, '0' );
111 120
112 QString str = day + month + year + hour + min + sec; 121 return day + month + year + hour + min + sec;
113
114 return str;
115} 122}
116QDateTime OConversion::dateTimeFromString( const QString& str) {
117 123
118 if ( str.isEmpty() ) return QDateTime(); 124
125QDateTime OConversion::dateTimeFromString( const QString& str )
126{
127
128 if ( str.isEmpty() )
129 return QDateTime();
119 int day = str.mid(0, 2).toInt(); 130 int day = str.mid(0, 2).toInt();
120 int month = str.mid(2, 2).toInt(); 131 int month = str.mid(2, 2).toInt();
121 int year = str.mid(4, 4).toInt(); 132 int year = str.mid(4, 4).toInt();
122 int hour = str.mid(8, 2).toInt(); 133 int hour = str.mid(8, 2).toInt();
123 int min = str.mid(10, 2).toInt(); 134 int min = str.mid(10, 2).toInt();
124 int sec = str.mid(12, 2).toInt(); 135 int sec = str.mid(12, 2).toInt();
125 136
126 QDate date( year, month, day ); 137 QDate date( year, month, day );
127 QTime time( hour, min, sec ); 138 QTime time( hour, min, sec );
128 QDateTime dt( date, time ); 139 QDateTime dt( date, time );
129 return dt; 140 return dt;
130} 141}