Skip to content

Getting Started

Agent 57951 edited this page Dec 31, 2025 · 1 revision

Getting Started

This guide will help you get started with the Kurdish Calendar Library.

Installation

Via .NET CLI

dotnet add package KurdishCalendar.Core

Via Package Manager Console

Install-Package KurdishCalendar.Core

Via PackageReference in .csproj

Basic Usage

Creating Kurdish Dates

using KurdishCalendar.Core;

// Create a specific date
KurdishDate date1 = new KurdishDate(2725, 1, 1);  // 1st Xakelêwe 2725

// Get today's date
KurdishDate today = KurdishDate.Today;

// Convert from Gregorian
DateTime gregorian = new DateTime(2025, 3, 21);
KurdishDate nowruz = KurdishDate.FromDateTime(gregorian);

Formatting Dates

KurdishDate date = new KurdishDate(2725, 1, 15);

// Short format (default)
string short = date.ToString();  
// Output: 15/01/2725

// Long format with Sorani Latin
string longSorani = date.ToString("D", KurdishDialect.SoraniLatin);
// Output: 15 Xakelêwe 2725

// Long format with Kurmanji Arabic
string longKurmanji = date.ToString("D", KurdishDialect.KurmanjiArabic);
// Output: ١٥ خاکەلێوە ٢٧٢٥

// Custom format
string custom = date.ToString("dd MMMM yyyy", KurdishDialect.SoraniLatin);
// Output: 15 Xakelêwe 2725

Converting to Gregorian

KurdishDate kurdishDate = new KurdishDate(2725, 1, 1);
DateTime gregorian = kurdishDate.ToDateTime();
// Returns: 2025-03-21

Date Arithmetic

KurdishDate date = new KurdishDate(2725, 1, 1);

// Add days
KurdishDate tomorrow = date.AddDays(1);

// Add months
KurdishDate nextMonth = date.AddMonths(1);

// Add years
KurdishDate nextYear = date.AddYears(1);

// Calculate difference
int daysDiff = date.DaysDifference(tomorrow);  // Returns: -1

Parsing Dates

// Parse from string
KurdishDate date1 = KurdishDate.Parse("15 Xakelêwe 2725", KurdishDialect.SoraniLatin);
KurdishDate date2 = KurdishDate.Parse("15/01/2725", KurdishDialect.SoraniLatin);

// Safe parsing with TryParse
if (KurdishDate.TryParse("15/01/2725", KurdishDialect.SoraniLatin, out KurdishDate result))
{
  Console.WriteLine($"Parsed: {result}");
}

Gregorian Dates with Kurdish Month Names

using KurdishCalendar.Core;

DateTime gregorian = new DateTime(2025, 1, 28);

// Kurmanji Gregorian formatting
string kurmanji = gregorian.ToKurmanjiGregorianLong();
// Output: 28 Kanûna Duyê 2025

// Sorani Gregorian formatting
string sorani = gregorian.ToSoraniGregorianLong();
// Output: 28 Kanûnî Duhem 2025

// Arabic script
string kurmanjiArabic = gregorian.ToKurmanjiGregorian(
  GregorianKurmanjiFormatter.ScriptType.Arabic
);
// Output: ٢٨ کانوونا دویێ ٢٠٢٥

Supported Dialects

The library supports 10 dialect/script combinations:

Dialect Description
SoraniLatin Sorani dialect with Latin script (Kurdish calendar)
SoraniArabic Sorani dialect with Arabic script (Kurdish calendar)
SoraniGregorianLatin Sorani with Gregorian month names (Latin)
SoraniGregorianArabic Sorani with Gregorian month names (Arabic)
KurmanjiLatin Kurmanji dialect with Latin script (Kurdish calendar)
KurmanjiArabic Kurmanji dialect with Arabic script (Kurdish calendar)
KurmanjiGregorianLatin Kurmanji with Gregorian month names (Latin)
KurmanjiGregorianArabic Kurmanji with Gregorian month names (Arabic)
HawramiLatin Hawrami dialect with Latin script (Kurdish calendar)
HawramiArabic Hawrami dialect with Arabic script (Kurdish calendar)

Next Steps