قابلیتها
تبدیل دوطرفه تاریخ: امکان تبدیل تاریخ میلادی به شمسی و از شمسی به میلادی.
تشخیص سال کبیسه: تابع is_persian_leap_year برای شناسایی سالهای کبیسه شمسی.
محاسبه روز هفته: تابع weekday که نام روز هفته را به زبان فارسی بازمیگرداند.
سبکی و کارایی: طراحی شده با حداقل وابستگیها و بهرهمندی از کتابخانه chrono.
منبعباز بودن: کد منبع در دسترس عموم قرار دارد و امکان مشارکت در توسعه آن فراهم است.
نحوه عملکرد
Parsidate از کتابخانه استاندارد chrono برای مدیریت تاریخهای میلادی استفاده میکند و با پیادهسازی الگوریتمهای معتبر تبدیل تقویم، تاریخها را بهصورت دقیق به شمسی تبدیل مینماید. نمونهای از استفاده از این کتابخانه به شرح زیر است:
use chrono::NaiveDate; use parsidate::ParsiDate; fn main() { // تبدیل تاریخ میلادی به شمسی let gregorian_date = NaiveDate::from_ymd_opt(2025, 3, 28).unwrap(); let persian_date = ParsiDate::from_gregorian(gregorian_date).unwrap(); println!("تاریخ شمسی: {}", persian_date.to_string()); // خروجی: 1404/01/08 println!("روز هفته: {}", persian_date.weekday()); // خروجی: جمعه // تبدیل تاریخ شمسی به میلادی let persian_date = ParsiDate { year: 1404, month: 1, day: 8 }; let gregorian_date = persian_date.to_gregorian().unwrap(); println!("تاریخ میلادی: {}", gregorian_date); // خروجی: 2025-03-28 }مشخصات فنی
وابستگیها: تنها وابستگی این کتابخانه، chrono است که برای مدیریت تاریخهای میلادی به کار میرود.
الگوریتم تبدیل: مبتنی بر فرمولهای استاندارد تبدیل تقویم میلادی به شمسی، با پشتیبانی از محاسبات سالهای کبیسه.
رابط برنامهنویسی (API): توابعی نظیر from_gregorian و to_gregorian با استفاده از نوع بازگشتی Result، مدیریت خطاها را بهصورت ایمن تضمین میکنند.
نحوه نصب و استفاده
برای افزودن Parsidate به پروژه خود، کافی است خط زیر را به فایل Cargo.toml اضافه کنید:
[dependencies] parsidate = "0.1.1" # نسخه جاری یا آخرین نسخه chrono = "0.4"مثال و جزییات بیشتر را در crates.io قرار داده ام.
- 0 دیدگاه
- 7 بازدید
-

sina