1 /************************************************************************ 2 * Copyright (c) 2004, Arabeyes, Nadim Shaikli 3 * 4 * A Hijri (Islamic) to/from Gregorian (Christian) date conversion library. 5 * This file contains various structures/prototypes to be used within the 6 * library itself. Some of these structs are of interest to the user others 7 * shouldn't be. 8 * 9 * (www.arabeyes.org - under LGPL license - see COPYING file) 10 ************************************************************************/ 11 12 #ifndef _HIJRI_H 13 #define _HIJRI_H 14 15 /* User-viewable Date structure */ 16 typedef struct 17 { 18 int day; /* Day */ 19 int month; /* Month */ 20 int year; /* Year */ 21 int weekday; /* Day of the week (0:Sunday, 1:Monday...) */ 22 int frm_numdays; /* Number of days in specified input month */ 23 int to_numdays; /* Number of days in resulting output month */ 24 int to_numdays2; /* Number of days in resulting output month+1 */ 25 char *units; /* Units used to denote before/after epoch */ 26 char *frm_dname; /* Converting from - Name of day */ 27 char *frm_mname; /* Converting from - Name of month */ 28 char *frm_dname_sh; /* Converting from - Name of day in short format */ 29 char *frm_mname_sh; /* Converting from - Name of month in short format */ 30 char *to_dname; /* Converting to - Name of day */ 31 char *to_mname; /* Converting to - Name of month */ 32 char *to_mname2; /* Converting to - Name of month+1 */ 33 char *to_dname_sh; /* Converting to - Name of day in short format */ 34 char *to_mname_sh; /* Converting to - Name of month in short format */ 35 char **event; /* Important event pertaining to date at hand */ 36 } sDate; 37 38 /* Table populated structure */ 39 typedef struct 40 { 41 int day; 42 int month; 43 char *event; 44 } sEvent; 45 46 /* Prototypes */ 47 48 int h_date(sDate *cdate, int day, int month, int year); 49 int g_date(sDate *cdate, int day, int month, int year); 50 51 int G2H(sDate *cdate, int yg, int mg, int dg); 52 int H2G(sDate *cdate, int yh, int mh, int dh); 53 54 int g_absolute(int day, int month, int year); 55 int g_numdays(int month, int year); 56 57 int fill_datestruct(sDate *fdate, int weekday, int frm_month_num, 58 int to_month_num, char *frm_day[], char *frm_day_short[], 59 char *frm_month[], char *frm_month_short[], char *to_day[], 60 char *to_day_short[], char *to_month[], char *to_month_short[], 61 sEvent *farr_table, int farr_size); 62 63 #endif /* _HIJRI_H */ 64