الصدأ الفارسي التقويم v0.1.1 يوفر وظيفة للتحويل بين التقويمات الفارسية (الهجرية الشمسية) والغريغوري. يتم استخدام التقويم اليولياني كواجهة لجميع التحويلات. اسم الصندوق هو ptime
وهو متوافق مع وقت الصندوق. تم ترخيص كود المصدر هذا بموجب ترخيص MIT الذي يمكن العثور عليه في ملف الترخيص.
أضف ptime = "0.1"
إلى قسم dependencies
في Cargo.toml
:
[ dependencies ]
time = " 0.1 "
ptime = " 0.1 "
1- قم باستيراد ptime
. في أغلب الأحيان تحتاج إلى استيراد صندوق time
أيضًا.
extern crate ptime ;
extern crate time ;
2- تحويل التقويم الميلادي إلى التقويم الفارسي.
let p_tm = ptime :: from_gregorian_date ( 2016 , 2 , 21 ) . unwrap ( ) ;
assert_eq ! ( p_tm.tm_year, 1395 ) ;
assert_eq ! ( p_tm.tm_mon, 0 ) ;
assert_eq ! ( p_tm.tm_mday, 2 ) ;
3- تحويل التقويم الفارسي إلى التقويم الميلادي.
let g_tm = ptime :: from_persian_date ( 1395 , 0 , 2 ) . unwrap ( ) . to_gregorian ( ) ;
assert_eq ! ( g_tm.tm_year, 2016 ) ;
assert_eq ! ( g_tm.tm_mon, 2 ) ;
assert_eq ! ( g_tm.tm_mday, 21 ) ;
4- الحصول على الوقت الحالي.
let p_tm = ptime :: now ( ) ;
println ! ( "Current time: {}" , p_tm ) ;
let p_tm_utc = ptime :: now_utc ( ) ;
println ! ( "Current time at UTC: {}" , p_tm_utc ) ;
5- تنسيق الوقت.
let p_tm = ptime :: from_gregorian ( time :: now ( ) ) ;
println ! ( "{}" , p_tm.to_string ( "yyyy-MM-dd HH:mm:ss.ns" ) ) ;
/// yyyy, yyy, y year (e.g. 1394)
/// yy 2-digits representation of year (e.g. 94)
/// MMM the Persian name of month (e.g. فروردین)
/// MM 2-digits representation of month (e.g. 01)
/// M month (e.g. 1)
/// DD day of year (starting from 1)
/// D day of year (starting from 0)
/// dd 2-digits representation of day (e.g. 01)
/// d day (e.g. 1)
/// E the Persian name of weekday (e.g. شنبه)
/// e the Persian short name of weekday (e.g. ش)
/// A the Persian name of 12-Hour marker (e.g. قبل از ظهر)
/// a the Persian short name of 12-Hour marker (e.g. ق.ظ)
/// HH 2-digits representation of hour [00-23]
/// H hour [0-23]
/// kk 2-digits representation of hour [01-24]
/// k hour [1-24]
/// hh 2-digits representation of hour [01-12]
/// h hour [1-12]
/// KK 2-digits representation of hour [00-11]
/// K hour [0-11]
/// mm 2-digits representation of minute [00-59]
/// m minute [0-59]
/// ss 2-digits representation of seconds [00-59]
/// s seconds [0-59]
/// ns nanoseconds
لمزيد من المعلومات، يرجى التحقق من ملفات الاختبار في مجلد tests
.