korganizer
converter.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef CONVERTER_H
00012 #define CONVERTER_H
00013
00014 #include <qstring.h>
00015 #include <qstringlist.h>
00016
00017 struct DateResult
00018 {
00019 int year;
00020 int month;
00021 int day;
00022 int day_of_week;
00023
00024 int hebrew_month_length, secular_month_length;
00025 bool hebrew_leap_year_p, secular_leap_year_p;
00026 int kvia;
00027 int hebrew_day_number;
00028 };
00029
00033 class Converter
00034 {
00035 public:
00036
00037 Converter();
00038 ~Converter();
00039
00040 static bool hebrew_leap_year_p(int year);
00041 static bool gregorian_leap_year_p(int year);
00042
00043 static long absolute_from_gregorian(int year, int month, int day);
00044 static long absolute_from_hebrew(int year, int month, int day);
00045
00046 static void gregorian_from_absolute(long date, int *yearp,
00047 int *monthp, int *dayp);
00048 static void hebrew_from_absolute(long date, int *yearp, int *monthp,
00049 int *dayp);
00050
00051 static int hebrew_months_in_year(int year);
00052 static int hebrew_month_length(int year, int month);
00053 static int secular_month_length(int year, int month);
00054
00055 static long hebrew_elapsed_days(int year);
00056 static long hebrew_elapsed_days2(int year);
00057 static int hebrew_year_length(int year);
00058
00059 static void finish_up(long absolute, int hyear, int hmonth,
00060 int syear, int smonth,
00061 struct DateResult *result);
00062
00063 static void SecularToHebrewConversion(int year, int month, int day,
00064 struct DateResult *result);
00065 static void HebrewToSecularConversion(int year, int month, int day,
00066 struct DateResult *result);
00067
00068 private:
00069
00070 static QStringList HebrewMonthNames;
00071 static QStringList SecularMonthNames;
00072
00073 };
00074
00075 #endif
|