@@ -21,6 +21,8 @@ go get github.com/rojcode/kurdical
2121
2222## Usage
2323
24+ ### Basic Conversion
25+
2426``` go
2527package main
2628
@@ -35,30 +37,119 @@ func main() {
3537 t := time.Date (2023 , 3 , 21 , 0 , 0 , 0 , 0 , time.UTC )
3638 k := kurdical.GregorianToKurdish (t, kurdical.Sorani , kurdical.MedianKingdom )
3739 fmt.Printf (" Kurdish date: %d -%d -%d %s \n " , k.Year , k.Month , k.Day , k.MonthName )
40+ // Output: Kurdish date: 2723-1-1 خاکهلێوه
41+ }
42+ ```
43+
44+ ### Round Trip Conversion
45+
46+ ``` go
47+ // Convert Kurdish to Gregorian
48+ g , err := kurdical.KurdishToGregorian (k)
49+ if err != nil {
50+ fmt.Println (err)
51+ } else {
52+ fmt.Printf (" Gregorian date: %s \n " , g.Format (" 2006-01-02" ))
53+ // Output: Gregorian date: 2023-03-21
54+ }
55+ ```
56+
57+ ### Different Dialects
58+
59+ ``` go
60+ // Sorani dialect
61+ kSorani := kurdical.GregorianToKurdish (t, kurdical.Sorani , kurdical.MedianKingdom )
62+ fmt.Printf (" Sorani: %s \n " , kSorani.MonthName ) // خاکهلێوه
63+
64+ // Kurmanji dialect
65+ kKurmanji := kurdical.GregorianToKurdish (t, kurdical.Kurmanji , kurdical.MedianKingdom )
66+ fmt.Printf (" Kurmanji: %s \n " , kKurmanji.MonthName ) // نیسان
67+
68+ // Laki dialect
69+ kLaki := kurdical.GregorianToKurdish (t, kurdical.Laki , kurdical.MedianKingdom )
70+ fmt.Printf (" Laki: %s \n " , kLaki.MonthName ) // پهنجه
71+ ```
72+
73+ ### Different Epochs
74+
75+ ``` go
76+ // Median Kingdom epoch
77+ kMedian := kurdical.GregorianToKurdish (t, kurdical.Sorani , kurdical.MedianKingdom )
78+ fmt.Printf (" Median Kingdom: %d \n " , kMedian.Year ) // 2723
79+
80+ // Fall of Nineveh epoch
81+ kNineveh := kurdical.GregorianToKurdish (t, kurdical.Sorani , kurdical.FallOfNineveh )
82+ fmt.Printf (" Fall of Nineveh: %d \n " , kNineveh.Year ) // 2635
83+ ```
84+
85+ ### Formatting with Kurdish Digits
86+
87+ ``` go
88+ formatted , err := k.KFormat (" 2006-01-02 January" )
89+ if err != nil {
90+ fmt.Println (" Error:" , err)
91+ } else {
92+ fmt.Printf (" Formatted: %s \n " , formatted)
93+ // Output: Formatted: ٢٧٢٣-٠١-٠١ خاکهلێوه
94+ }
95+ ```
3896
39- // Convert Kurdish to Gregorian
40- g , err := kurdical.KurdishToGregorian (k)
41- if err != nil {
42- fmt.Println (err)
43- } else {
44- fmt.Printf (" Gregorian date: %s \n " , g.Format (" 2006-01-02" ))
45- }
46-
47- // Create a specific Kurdish date and convert to Gregorian
48- // Note: Dialect is optional and not used in conversion, only Epoch matters
49- specificKurdish := kurdical.KurdishDate {
50- Year: 2725 ,
51- Month: 9 ,
52- Day: 24 ,
53- Dialect: kurdical.Sorani , // Optional
54- Epoch: kurdical.MedianKingdom ,
55- }
56- gregorianSpecific , err := kurdical.KurdishToGregorian (specificKurdish)
57- if err != nil {
58- fmt.Println (" Error:" , err)
59- } else {
60- fmt.Printf (" Kurdish 2725-09-24 to Gregorian: %s \n " , gregorianSpecific.Format (" 2006-01-02" ))
61- }
97+ ### Weekday Display
98+
99+ ``` go
100+ fmt.Printf (" Weekday: %s \n " , kurdical.WeekdayNames [k.Weekday ])
101+ // Output: Weekday: سێشەممە (for Tuesday)
102+ ```
103+
104+ ### Creating Kurdish Date Manually
105+
106+ ``` go
107+ // Create a specific Kurdish date and convert to Gregorian
108+ specificKurdish := kurdical.KurdishDate {
109+ Year : 2725 ,
110+ Month : 9 ,
111+ Day : 24 ,
112+ Dialect : kurdical.Sorani , // Optional
113+ Epoch : kurdical.MedianKingdom ,
114+ }
115+ gregorianSpecific , err := kurdical.KurdishToGregorian (specificKurdish)
116+ if err != nil {
117+ fmt.Println (" Error:" , err)
118+ } else {
119+ fmt.Printf (" Kurdish 2725-09-24 to Gregorian: %s \n " , gregorianSpecific.Format (" 2006-01-02" ))
120+ // Output: Kurdish 2725-09-24 to Gregorian: 2025-12-15
121+ }
122+ ```
123+
124+ ### Date-Only Functions
125+
126+ ``` go
127+ // Using date-only functions without time.Time
128+ k := kurdical.GregorianToKurdishDate (2023 , 3 , 21 , kurdical.Sorani , kurdical.MedianKingdom )
129+ fmt.Printf (" Kurdish: %d -%d -%d %s \n " , k.Year , k.Month , k.Day , k.MonthName )
130+
131+ gy , gm , gd , err := kurdical.KurdishToGregorianDate (k.Year , k.Month , k.Day , k.Epoch )
132+ if err != nil {
133+ fmt.Println (" Error:" , err)
134+ } else {
135+ fmt.Printf (" Gregorian: %d -%d -%d \n " , gy, gm, gd)
136+ // Output: Gregorian: 2023-3-21
137+ }
138+ ```
139+
140+ ### Error Handling
141+
142+ ``` go
143+ // Invalid date
144+ invalidKurdish := kurdical.KurdishDate {
145+ Year : 2725 ,
146+ Month : 13 , // Invalid month
147+ Day : 24 ,
148+ Epoch : kurdical.MedianKingdom ,
149+ }
150+ _ , err := kurdical.KurdishToGregorian (invalidKurdish)
151+ if err != nil {
152+ fmt.Printf (" Error: %s \n " , err) // Error: invalid month: 13
62153}
63154```
64155
@@ -73,8 +164,10 @@ func main() {
73164### Functions
74165
75166- ` GregorianToKurdish(t time.Time, dialect Dialect, epoch Epoch) KurdishDate `
167+ - ` GregorianToKurdishDate(year, month, day int, dialect Dialect, epoch Epoch) KurdishDate `
76168- ` KurdishToGregorian(k KurdishDate) (time.Time, error) `
77- - ` (k KurdishDate) KFormat(layout string) (string, error) ` : Formats the Kurdish date using Go time layout strings with Persian digits
169+ - ` KurdishToGregorianDate(kYear, kMonth, kDay int, epoch Epoch) (int, int, int, error) `
170+ - ` (k KurdishDate) KFormat(layout string) (string, error) ` : Formats the Kurdish date using Go time layout strings with Kurdish digits
78171
79172## Kurdish Calendar Details
80173
0 commit comments