Rust Persian Calendar

1** provides functionality for conversion among Persian (Solar Hijri) and Gregorian calendars

=====================

** v0.1.. A Julian calendar is used as an interface for all conversions. The crate name is ptime and it is compatible with the crate time. This source code is licensed under MIT license that can be found in the LICENSE file.

Installation

Add ptime = "0.1" to dependencies section of Cargo.toml:

[dependencies]
time = "0.1"
ptime = "0.1"

Getting started

1- Import the crate ptime. Most of the time you need to import time crate, too.

extern crate ptime;
extern crate time;

2- Convert Gregorian calendar to Persian calendar.

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- Convert Persian calendar to Gregorian calendar.

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- Get the current time.

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- Format the time.

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

For more information, please check the test files in tests folder.

Information - Updated Jun 12, 2022

Stars: 27
Forks: 3
Issues: 0

This is an example of a Rust server that functions as a remote schema for...

Rust + Hasura Rust server that functions as a Hasura

This is an example of a Rust server that functions as a remote schema for...

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

It is designed to be easily extendable and easy to use

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

It is designed to be easily extendable and easy to use

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

liboqs-rust: Rust bindings for liboqs

Qyantum Safe liboqs rust bindings

liboqs-rust: Rust bindings for liboqs

msgflo-rust: Rust participant support for MsgFlo

Flowhub visual programming IDE

msgflo-rust: Rust participant support for MsgFlo

Trojan-rust is a rust implementation for Trojan protocol that is targeted to circumvent GFW

Trojan protocol that is targeted to circumvent tokio-rs to achieve high performance async io

Trojan-rust is a rust implementation for Trojan protocol that is targeted to circumvent GFW
Actix

1.0K

How to be a full stack Rust Developer

Read Rust the Rust blog posts at Steadylearner

How to be a full stack Rust Developer

Rust library translation (rust-src/rust-std/stdlib/rustlib translation)

This is the place to translate Having a documentation in your native language is essential if you don't speak English, and still enjoyable even if...

Rust library translation (rust-src/rust-std/stdlib/rustlib translation)

False Positive for rust-lang/rust#83583

The deprecation lint proc_macro_derive_resolution_fallback is intended to catch proc macro generated code that refers to items from parent modules that should not be in scope:

False Positive for rust-lang/rust#83583

A CHIP-8 & SuperChip interpreter written in Rust using rust-sdl2

If you're getting compile errors it may be because

A CHIP-8 & SuperChip interpreter written in Rust using rust-sdl2

Rust-Svelte-on-Rust

Starter template for Rocket backend server

Rust-Svelte-on-Rust
Facebook Instagram Twitter GitHub Dribbble
Privacy