summaryrefslogtreecommitdiff
authoralwin <alwin>2005-03-17 20:59:02 (UTC)
committer alwin <alwin>2005-03-17 20:59:02 (UTC)
commit59232fab8ee82af81884f7842e6e5380ccc8c427 (patch) (unidiff)
treeb476021def6bf6491154d8c97ece5a54412274dc
parent120694217c012e3c1c394db0598da41f2705e965 (diff)
downloadopie-59232fab8ee82af81884f7842e6e5380ccc8c427.zip
opie-59232fab8ee82af81884f7842e6e5380ccc8c427.tar.gz
opie-59232fab8ee82af81884f7842e6e5380ccc8c427.tar.bz2
corrected an error in date-counting
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/holiday/christian/chrisholiday.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/pim/datebook/holiday/christian/chrisholiday.cpp b/core/pim/datebook/holiday/christian/chrisholiday.cpp
index f8e310f..2cccb85 100644
--- a/core/pim/datebook/holiday/christian/chrisholiday.cpp
+++ b/core/pim/datebook/holiday/christian/chrisholiday.cpp
@@ -1,144 +1,144 @@
1#include "chrisholiday.h" 1#include "chrisholiday.h"
2 2
3#include <qobject.h> 3#include <qobject.h>
4#include <qpe/event.h> 4#include <qpe/event.h>
5 5
6QString ChrisHoliday::description() 6QString ChrisHoliday::description()
7{ 7{
8 return QObject::tr("Christian holidays","holidays"); 8 return QObject::tr("Christian holidays","holidays");
9} 9}
10 10
11QStringList ChrisHoliday::entries(const QDate&aDate) 11QStringList ChrisHoliday::entries(const QDate&aDate)
12{ 12{
13 QStringList ret; 13 QStringList ret;
14 ret+=_internallist.entries(aDate); 14 ret+=_internallist.entries(aDate);
15 calcit(aDate.year()); 15 calcit(aDate.year());
16 tDayMap::Iterator it = _days.find(aDate); 16 tDayMap::Iterator it = _days.find(aDate);
17 if (it!=_days.end()) { 17 if (it!=_days.end()) {
18 ret+=*it; 18 ret+=*it;
19 } 19 }
20 20
21 return ret; 21 return ret;
22} 22}
23 23
24QStringList ChrisHoliday::entries(unsigned year, unsigned month, unsigned day) 24QStringList ChrisHoliday::entries(unsigned year, unsigned month, unsigned day)
25{ 25{
26 return entries(QDate(year,month,day)); 26 return entries(QDate(year,month,day));
27} 27}
28 28
29void ChrisHoliday::calcit(int year) 29void ChrisHoliday::calcit(int year)
30{ 30{
31 if (year==_lastyear) return; 31 if (year==_lastyear) return;
32 _lastyear = year; 32 _lastyear = year;
33 _days.clear(); 33 _days.clear();
34 calc_easter(); 34 calc_easter();
35 calc_christmas(); 35 calc_christmas();
36} 36}
37 37
38void ChrisHoliday::calc_christmas() 38void ChrisHoliday::calc_christmas()
39{ 39{
40 QDate cday(_lastyear,12,24); 40 QDate cday(_lastyear,12,24);
41 int diff; 41 int diff;
42 if ( (diff=cday.dayOfWeek())!=7) { 42 if ( (diff=cday.dayOfWeek())!=7) {
43 cday=cday.addDays(-diff); 43 cday=cday.addDays(-diff);
44 _days[cday].append(QObject::tr("4. Advent","holidays")); 44 _days[cday].append(QObject::tr("4. Advent","holidays"));
45 } 45 }
46 _days[cday.addDays(-7)].append(QObject::tr("3. Advent","holidays")); 46 _days[cday.addDays(-7)].append(QObject::tr("3. Advent","holidays"));
47 _days[cday.addDays(-14)].append(QObject::tr("2. Advent","holidays")); 47 _days[cday.addDays(-14)].append(QObject::tr("2. Advent","holidays"));
48 _days[cday.addDays(-21)].append(QObject::tr("1. Advent","holidays")); 48 _days[cday.addDays(-21)].append(QObject::tr("1. Advent","holidays"));
49} 49}
50 50
51void ChrisHoliday::calc_easter() 51void ChrisHoliday::calc_easter()
52{ 52{
53 unsigned long n = 0; 53 unsigned long n = 0;
54 unsigned long p = 0; 54 unsigned long p = 0;
55 55
56 if ( _lastyear > 1582 ) { 56 if ( _lastyear > 1582 ) {
57 unsigned long a = _lastyear%19; 57 unsigned long a = _lastyear%19;
58 unsigned long b = _lastyear/100; 58 unsigned long b = _lastyear/100;
59 unsigned long c = _lastyear%100; 59 unsigned long c = _lastyear%100;
60 unsigned long d = b/4; 60 unsigned long d = b/4;
61 unsigned long e = b%4; 61 unsigned long e = b%4;
62 unsigned long f = (b+8)/25; 62 unsigned long f = (b+8)/25;
63 unsigned long g = (b+f+1)/3; 63 unsigned long g = (b+f+1)/3;
64 unsigned long h = (19*a+b-d-g+15)%30; 64 unsigned long h = (19*a+b-d-g+15)%30;
65 unsigned long i = c/4; 65 unsigned long i = c/4;
66 unsigned long j = c%4; 66 unsigned long j = c%4;
67 unsigned long k = j%100; 67 unsigned long k = j%100;
68 unsigned long l = (32+2*e+2*i-h-k)%7; 68 unsigned long l = (32+2*e+2*i-h-k)%7;
69 unsigned long m = (a+11*h+22*l)/451; 69 unsigned long m = (a+11*h+22*l)/451;
70 n = (h+l-7*m+114)/31; 70 n = (h+l-7*m+114)/31;
71 p = (h+l-7*m+114)%31; 71 p = (h+l-7*m+114)%31;
72 } else { 72 } else {
73 unsigned long a = _lastyear%4; 73 unsigned long a = _lastyear%4;
74 unsigned long b = _lastyear%7; 74 unsigned long b = _lastyear%7;
75 unsigned long c = _lastyear%19; 75 unsigned long c = _lastyear%19;
76 unsigned long d = (19*c+15)%30; 76 unsigned long d = (19*c+15)%30;
77 unsigned long e = (2*a+4*b-d+34)%7; 77 unsigned long e = (2*a+4*b-d+34)%7;
78 n = (d+e+114)/31; 78 n = (d+e+114)/31;
79 p = (d+e+114)%31; 79 p = (d+e+114)%31;
80 } 80 }
81 p++; 81 p++;
82 QDate d(_lastyear,n,p); 82 QDate d(_lastyear,n,p);
83 _days[d].append(QObject::tr("Eastersunday","holidays")); 83 _days[d].append(QObject::tr("Eastersunday","holidays"));
84 _days[d.addDays(49)].append(QObject::tr("Whitsunday","holidays")); 84 _days[d.addDays(49)].append(QObject::tr("Whitsunday","holidays"));
85 _days[d.addDays(50)].append(QObject::tr("Whitmonday","holidays")); 85 _days[d.addDays(50)].append(QObject::tr("Whitmonday","holidays"));
86 _days[d.addDays(39)].append(QObject::tr("Ascension Day","holidays")); 86 _days[d.addDays(39)].append(QObject::tr("Ascension Day","holidays"));
87 _days[d.addDays(-46)].append(QObject::tr("Ash Wednesday","holidays")); 87 _days[d.addDays(-46)].append(QObject::tr("Ash Wednesday","holidays"));
88 _days[d.addDays(60)].append(QObject::tr("Corpus Christi","holidays")); 88 _days[d.addDays(60)].append(QObject::tr("Corpus Christi","holidays"));
89} 89}
90 90
91QMap<QDate,QStringList> ChrisHoliday::entries(const QDate&start,const QDate&end) 91QMap<QDate,QStringList> ChrisHoliday::entries(const QDate&start,const QDate&end)
92{ 92{
93 QMap<QDate,QStringList> ret; 93 QMap<QDate,QStringList> ret;
94 if (start==end) { 94 if (start==end) {
95 ret[start]=entries(start); 95 ret[start]=entries(start);
96 return ret; 96 return ret;
97 } 97 }
98 QDate d; 98 QDate d;
99 int daysto; 99 int daysto;
100 if (end < start) { 100 if (end < start) {
101 d = end; 101 d = end;
102 daysto = end.daysTo(start); 102 daysto = end.daysTo(start);
103 } else { 103 } else {
104 d = start; 104 d = start;
105 daysto = start.daysTo(end); 105 daysto = start.daysTo(end);
106 } 106 }
107 QStringList temp; 107 QStringList temp;
108 for (int i=0;i<daysto;++i) { 108 for (int i=0;i<=daysto;++i) {
109 temp = entries(d.addDays(i)); 109 temp = entries(d.addDays(i));
110 if (temp.count()==0) continue; 110 if (temp.count()==0) continue;
111 ret[d.addDays(i)]+=temp; 111 ret[d.addDays(i)]+=temp;
112 temp.clear(); 112 temp.clear();
113 } 113 }
114 return ret; 114 return ret;
115} 115}
116 116
117QValueList<EffectiveEvent> ChrisHoliday::events(const QDate&start,const QDate&end) 117QValueList<EffectiveEvent> ChrisHoliday::events(const QDate&start,const QDate&end)
118{ 118{
119 QValueList<EffectiveEvent> ret; 119 QValueList<EffectiveEvent> ret;
120 QDate d = (start<end?start:end); 120 QDate d = (start<end?start:end);
121 int daysto = start.daysTo(end); 121 int daysto = start.daysTo(end);
122 if (daysto < 0) { 122 if (daysto < 0) {
123 daysto = end.daysTo(start); 123 daysto = end.daysTo(start);
124 } 124 }
125 125
126 QStringList temp; 126 QStringList temp;
127 for (int i =0; i<daysto;++i) { 127 for (int i =0; i<= daysto;++i) {
128 temp = entries(d.addDays(i)); 128 temp = entries(d.addDays(i));
129 if (temp.count()==0) { 129 if (temp.count()==0) {
130 continue; 130 continue;
131 } 131 }
132 for (unsigned j=0;j<temp.count();++j) { 132 for (unsigned j=0;j<temp.count();++j) {
133 Event ev; 133 Event ev;
134 ev.setDescription(temp[j]); 134 ev.setDescription(temp[j]);
135 ev.setStart(d.addDays(i)); 135 ev.setStart(d.addDays(i));
136 ev.setAllDay(true); 136 ev.setAllDay(true);
137 ret.append(EffectiveEvent(ev,d.addDays(i))); 137 ret.append(EffectiveEvent(ev,d.addDays(i)));
138 } 138 }
139 } 139 }
140 140
141 return ret; 141 return ret;
142} 142}
143 143
144EXPORT_HOLIDAY_PLUGIN(ChrisHoliday); 144EXPORT_HOLIDAY_PLUGIN(ChrisHoliday);