Rust Persian Calendar v0.1.1 มีฟังก์ชันสำหรับการแปลงระหว่างปฏิทินเปอร์เซีย (สุริยฮิจเราะห์) และปฏิทินเกรกอเรียน ปฏิทินจูเลียนถูกใช้เป็นอินเทอร์เฟซสำหรับการแปลงทั้งหมด ชื่อลังคือ ptime
และเข้ากันได้กับเวลาลัง ซอร์สโค้ดนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT ซึ่งสามารถพบได้ในไฟล์ LICENSE
เพิ่ม 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