// Calendar arithmetic: leap years, month lengths and day counts.
import std.io.println;
import std.text.number;
import std.time.calendar;
def main(): int {
if (is_leap_year(2024)) { println("2024 is a leap year"); };
if (!is_leap_year(2100)) { println("2100 is not"); };
println(uint_to_text(days_in_month(2024, 2)));
match new_calendar_date(2026, 11, 4) with
| option.none -> { return 1; }
| option.some(date) -> {
match day_of_year(&date) with
| option.some(day) -> { println(uint_to_text(day)); }
| option.none -> { };
match unix_days_from_date(&date) with
| option.some(days) -> { println(int_to_text(days)); }
| option.none -> { };
};
return 0;
}// حساب التقويم: السنوات الكبيسة وأطوال الأشهر وعدد الأيام.
استورد std.io.println;
استورد std.text.number;
استورد std.time.calendar;
عرف الرئيسية(): عدد {
إذا (سنة_كبيسة(2024)) { اطبع_سطر("2024 سنة كبيسة"); };
إذا (!سنة_كبيسة(2100)) { اطبع_سطر("2100 ليست كبيسة"); };
اطبع_سطر(طبيعي_إلى_نص(أيام_في_الشهر(2024, 2)));
طابق أنشئ_تاريخا_تقويميا(2026, 11, 4) مع
| اختياري.لا_شيء -> { أرجع 1; }
| اختياري.موجود(التاريخ) -> {
طابق ترتيب_اليوم_في_السنة(&التاريخ) مع
| اختياري.موجود(اليوم) -> { اطبع_سطر(طبيعي_إلى_نص(اليوم)); }
| اختياري.لا_شيء -> { };
طابق أيام_يونكس_من_التاريخ(&التاريخ) مع
| اختياري.موجود(الأيام) -> { اطبع_سطر(عدد_إلى_نص(الأيام)); }
| اختياري.لا_شيء -> { };
};
أرجع 0;
}
Run it
With the interpreter, without compiling:
./build/sultanc run examples/en/time/calendar.snOr compile it to an executable:
./build/sultanc examples/en/time/calendar.sn -o build/example && ./build/example