PHASEXave-1.5.0 has been yanked.

PHASEXave
Installation
The library is hosted on crates.io.
[dependencies]
PHASEXave = "*"
Usage
Time
Get current time with timezone:
use PHASEXave::{Time};
fn main() {
let timezone: i8 = 8;
let time: Time = Time::now(timezone);
println!("{hours}:{minutes}:{seconds}", hours = time.hours, minutes = time.minutes, seconds = time.seconds);
}
Uptime
Add feature to Cargo.toml:
[dependencies]
PHASEXave = { version = "*", features = ["platform_specific_functions_darwin"] }
[dependencies]
PHASEXave = { version = "*", features = ["platform_specific_functions_unix"] }
[dependencies]
PHASEXave = { version = "*", features = ["platform_specific_functions_windows"] }
Get uptime (without sleep time is not a boot time) (macOS/Darwin/XNU, Unix/Linux, Windows):
use PHASEXave::{Time, Uptime};
fn main() {
let time: Uptime = Time::absolute();
println!("{hours}:{minutes}:{seconds}", hours = time.hours, minutes = time.minutes, seconds = time.seconds);
}
Date
Now
use PHASEXave::{Date};
fn main() {
let timezone: i8 = 8;
let date: Date = Date::now(timezone);
println!("{yyyy}/{mm}/{dd}", yyyy = date.year, mm = date.month, dd = date.day);
}
Conversion
Gregorian to Julian
Convert any Gregorian date to Julian date:
use PHASEXave::{Date, Julian};
fn main() {
let timezone: i8 = 8;
let mut date: Date = Date::now(timezone);
<Date as Julian>::to_julian(&mut date);
println!("{yyyy}/{mm}/{dd}", yyyy = date.year, mm = date.month, dd = date.day);
}
Julian to Gregorian
Convert any Julian date to Gregorian date:
use PHASEXave::{Date, Julian, Gregorian};
fn main() {
let timezone: i8 = 8;
let mut date: Date = Date::now(timezone);
<Date as Julian>::to_julian(&mut date);
<Date as Gregorian>::to_gregorian(&mut date);
println!("{yyyy}/{mm}/{dd}", yyyy = date.year, mm = date.month, dd = date.day);
}
- any, but except first two days, that missing in Gregorian calendar
Day of Week
Get week day from Gregorian and Julian calendar:
Gregorian
Get week day from Date:
use PHASEXave::{Date, RataDie, Xavetar, Sakamoto};
fn main() {
let timezone: i8 = 8;
let date: Date = Date::now(timezone);
println!(
"Gregorian Week day:\n\nRata Die: {rata_die}\nSakamoto: {sakamoto}\nXavetar: {xavetar}\n",
rata_die = <Date as RataDie>::week_day(&date).name(),
xavetar = <Date as Xavetar>::week_day(&date).name(),
sakamoto = <Date as Sakamoto>::week_day(&date).name(),
);
println!("Date: {yyyy}/{mm}/{dd}", yyyy = date.year, mm = date.month, dd = date.day);
}
Get week day from any date:
use PHASEXave::{CalendarView, Date, Julian, RataDie, Xavetar, Sakamoto};
fn main() {
let (yyyy, mm, dd): (u128, u8, u8) = (1582, 10, 5);
println!(
"Gregorian Week day:\n\nRata Die: {rata_die}\nXavetar: {xavetar}\nSakamoto: {sakamoto}\n",
rata_die = <Date as RataDie>::from(CalendarView::Gregorian, yyyy, mm, dd).name(),
xavetar = <Date as Xavetar>::from(CalendarView::Gregorian, yyyy, mm, dd).name(),
sakamoto = <Date as Sakamoto>::from(CalendarView::Gregorian, yyyy, mm, dd).name(),
);
println!("Date: {yyyy}/{mm}/{dd}", yyyy = yyyy, mm = mm, dd = dd);
}
Julian
Get week day from Date:
use PHASEXave::{Date, Julian, RataDie, Xavetar, Sakamoto};
fn main() {
let timezone: i8 = 8;
let mut date: Date = Date::now(timezone);
<Date as Julian>::to_julian(&mut date);
println!(
"Julian Week day:\n\nRata Die: {rata_die}\nXavetar: {xavetar}\nSakamoto: {sakamoto}\n",
rata_die = <Date as RataDie>::week_day(&date).name(),
xavetar = <Date as Xavetar>::week_day(&date).name(),
sakamoto = <Date as Sakamoto>::week_day(&date).name(),
);
println!("Date: {yyyy}/{mm}/{dd}", yyyy = date.year, mm = date.month, dd = date.day);
}
Get week day from any date:
use PHASEXave::{CalendarView, Date, Julian, RataDie, Xavetar, Sakamoto};
fn main() {
let (yyyy, mm, dd): (u128, u8, u8) = (1582, 10, 5);
println!(
"Julian Week day:\n\nRata Die: {rata_die}\nXavetar: {xavetar}\nSakamoto: {sakamoto}\n",
rata_die = <Date as RataDie>::from(CalendarView::Julian, yyyy, mm, dd).name(),
xavetar = <Date as Xavetar>::from(CalendarView::Julian, yyyy, mm, dd).name(),
sakamoto = <Date as Sakamoto>::from(CalendarView::Julian, yyyy, mm, dd).name(),
);
println!("Date: {yyyy}/{mm}/{dd}", yyyy = yyyy, mm = mm, dd = dd);
}
License
PHASEXave is primarily distributed under the terms of both the MIT license
and the Apache License (Version 2.0)
See LICENSE-APACHE and LICENSE-MIT for details.