Skip to content

Releases: rojcode/kurdical

Kurdish Calendar Module v1.0.0 - First Stable Release

15 Dec 20:04

Choose a tag to compare

This is the first stable release of the kurdical Go module, providing comprehensive Kurdish calendar functionality.

What's New

Core Features

  • Bidirectional Conversion: Convert between Gregorian and Kurdish calendars
  • Historical Epochs: Support for Median Kingdom (Diako) and Fall of Nineveh (Cyaxares) epochs
  • Multiple Dialects: Authentic month names in 5 Kurdish dialects:
    • Sorani (Central Kurdish)
    • Kurmanji (Northern Kurdish)
    • Laki
    • Hawrami
    • Kalhuri
  • Kurdish Digits: Formatting with Eastern Arabic numerals (٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩)
  • Weekday Support: Kurdish weekday names
  • Date-Only Functions: Convert without time.Time objects

Technical Excellence

  • 100% Test Coverage: Comprehensive test suite with fuzz testing
  • Error Handling: Proper validation and error messages
  • Cultural Accuracy: UTF-8 support with proper Kurdish Unicode characters
  • Clean API: Idiomatic Go design with clear function signatures
  • Documentation: Extensive README with 15+ usage examples

Installation

go get github.com/rojcode/[email protected]

Quick Start

package main

import (
    "fmt"
    "time"
    "github.com/rojcode/kurdical"
)

func main() {
    // Convert Gregorian to Kurdish
    t := time.Date(2023, 3, 21, 0, 0, 0, 0, time.UTC)
    k := kurdical.GregorianToKurdish(t, kurdical.Sorani, kurdical.MedianKingdom)
    fmt.Printf("Kurdish date: %d-%d-%d %s\n", k.Year, k.Month, k.Day, k.MonthName)
    
    // Format with Kurdish digits
    formatted, _ := k.KFormat("2006-01-02")
    fmt.Printf("Formatted: %s\n", formatted) // ٢٧٢٣-٠١-٠١
}

Compatibility

  • Go 1.18+
  • Compatible with all major platforms
  • No external dependencies

Documentation

Complete documentation available in the repository README.md with comprehensive examples and API reference.

Contributing

This release establishes the foundation for the kurdical module. Future releases may include additional dialects, formatting options, and calendar arithmetic functions.