summaryrefslogtreecommitdiffstats
path: root/src/util.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.rs')
-rw-r--r--src/util.rs140
1 files changed, 77 insertions, 63 deletions
diff --git a/src/util.rs b/src/util.rs
index 1ed9a7a..efed210 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -1,7 +1,12 @@
#[inline]
-pub fn adjust_times_add(mut y: i64, mut mo: i64, mut d: i64, mut h: i64, mut mi: i64, mut s: i64)
- -> (i64, i64, i64, i64, i64, i64)
-{
+pub fn adjust_times_add(
+ mut y: i64,
+ mut mo: i64,
+ mut d: i64,
+ mut h: i64,
+ mut mi: i64,
+ mut s: i64,
+) -> (i64, i64, i64, i64, i64, i64) {
// Subtract $border from the $base as long as the $base is bigger or equal to the $border.
// The number of subtractions are added to $next.
macro_rules! fix {
@@ -11,7 +16,7 @@ pub fn adjust_times_add(mut y: i64, mut mo: i64, mut d: i64, mut h: i64, mut mi:
$next:ident
} => {
$next += ($base - ($base % $border)) / $border;
- $base = $base % $border;
+ $base %= $border;
}
}
@@ -33,12 +38,17 @@ pub fn adjust_times_add(mut y: i64, mut mo: i64, mut d: i64, mut h: i64, mut mi:
}
#[inline]
-pub fn adjust_times_sub(mut y: i64, mut mo: i64, mut d: i64, mut h: i64, mut mi: i64, mut s: i64)
- -> (i64, i64, i64, i64, i64, i64)
-{
+pub fn adjust_times_sub(
+ mut y: i64,
+ mut mo: i64,
+ mut d: i64,
+ mut h: i64,
+ mut mi: i64,
+ mut s: i64,
+) -> (i64, i64, i64, i64, i64, i64) {
if s < 0 {
mi -= (s.abs() / 60) + 1;
- s = 60 - (0 - s).abs();
+ s = 60 - (0 - s).abs();
}
if mi < 0 {
@@ -48,12 +58,12 @@ pub fn adjust_times_sub(mut y: i64, mut mo: i64, mut d: i64, mut h: i64, mut mi:
if h < 0 {
d -= (h.abs() / 24) + 1;
- h = 24 - (0 - h).abs();
+ h = 24 - (0 - h).abs();
}
if d < 1 {
mo -= (d.abs() / 32) + 1;
- d = 31 - (0 - d).abs();
+ d = 31 - (0 - d).abs();
}
if mo < 1 {
@@ -86,83 +96,87 @@ pub fn is_leap_year(y: i32) -> bool {
#[test]
fn test_is_leap_year() {
- let leaps = [ 1880, 1884, 1888, 1892, 1896, 1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932,
- 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992,
- 1996, 2000, 2004, 2008, 2012, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056,
- 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2104, 2108, 2112, 2116, 2120,
- 2124, 2128, 2132, 2136, 2140, 2144, 2148, 2152, 2156, 2160, 2164, 2168, 2172, 2176, 2180,
- 2184, 2188, 2192, 2196, 2204, 2208 ];
+ let leaps = [
+ 1880, 1884, 1888, 1892, 1896, 1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952,
+ 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2020, 2024, 2028,
+ 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2104,
+ 2108, 2112, 2116, 2120, 2124, 2128, 2132, 2136, 2140, 2144, 2148, 2152, 2156, 2160, 2164, 2168, 2172, 2176,
+ 2180, 2184, 2188, 2192, 2196, 2204, 2208,
+ ];
for i in leaps.iter() {
assert!(is_leap_year(*i), "Is no leap year: {}", i);
- assert!(!is_leap_year(*i + 1), "Seems to be leap year: {}, but should not be", i + 1);
+ assert!(
+ !is_leap_year(*i + 1),
+ "Seems to be leap year: {}, but should not be",
+ i + 1
+ );
}
-
}
#[test]
fn test_get_num_of_days_in_month() {
- assert_eq!(31, get_num_of_days_in_month(2000, 01));
- assert_eq!(29, get_num_of_days_in_month(2000, 02));
- assert_eq!(31, get_num_of_days_in_month(2000, 03));
- assert_eq!(30, get_num_of_days_in_month(2000, 04));
- assert_eq!(31, get_num_of_days_in_month(2000, 05));
- assert_eq!(30, get_num_of_days_in_month(2000, 06));
- assert_eq!(31, get_num_of_days_in_month(2000, 07));
- assert_eq!(31, get_num_of_days_in_month(2000, 08));
- assert_eq!(30, get_num_of_days_in_month(2000, 09));
+ assert_eq!(31, get_num_of_days_in_month(2000, 1));
+ assert_eq!(29, get_num_of_days_in_month(2000, 2));
+ assert_eq!(31, get_num_of_days_in_month(2000, 3));
+ assert_eq!(30, get_num_of_days_in_month(2000, 4));
+ assert_eq!(31, get_num_of_days_in_month(2000, 5));
+ assert_eq!(30, get_num_of_days_in_month(2000, 6));
+ assert_eq!(31, get_num_of_days_in_month(2000, 7));
+ assert_eq!(31, get_num_of_days_in_month(2000, 8));
+ assert_eq!(30, get_num_of_days_in_month(2000, 9));
assert_eq!(31, get_num_of_days_in_month(2000, 10));
assert_eq!(30, get_num_of_days_in_month(2000, 11));
assert_eq!(31, get_num_of_days_in_month(2000, 12));
- assert_eq!(31, get_num_of_days_in_month(2001, 01));
- assert_eq!(28, get_num_of_days_in_month(2001, 02));
- assert_eq!(31, get_num_of_days_in_month(2001, 03));
- assert_eq!(30, get_num_of_days_in_month(2001, 04));
- assert_eq!(31, get_num_of_days_in_month(2001, 05));
- assert_eq!(30, get_num_of_days_in_month(2001, 06));
- assert_eq!(31, get_num_of_days_in_month(2001, 07));
- assert_eq!(31, get_num_of_days_in_month(2001, 08));
- assert_eq!(30, get_num_of_days_in_month(2001, 09));
+ assert_eq!(31, get_num_of_days_in_month(2001, 1));
+ assert_eq!(28, get_num_of_days_in_month(2001, 2));
+ assert_eq!(31, get_num_of_days_in_month(2001, 3));
+ assert_eq!(30, get_num_of_days_in_month(2001, 4));
+ assert_eq!(31, get_num_of_days_in_month(2001, 5));
+ assert_eq!(30, get_num_of_days_in_month(2001, 6));
+ assert_eq!(31, get_num_of_days_in_month(2001, 7));
+ assert_eq!(31, get_num_of_days_in_month(2001, 8));
+ assert_eq!(30, get_num_of_days_in_month(2001, 9));
assert_eq!(31, get_num_of_days_in_month(2001, 10));
assert_eq!(30, get_num_of_days_in_month(2001, 11));
assert_eq!(31, get_num_of_days_in_month(2001, 12));
- assert_eq!(31, get_num_of_days_in_month(2002, 01));
- assert_eq!(28, get_num_of_days_in_month(2002, 02));
- assert_eq!(31, get_num_of_days_in_month(2002, 03));
- assert_eq!(30, get_num_of_days_in_month(2002, 04));
- assert_eq!(31, get_num_of_days_in_month(2002, 05));
- assert_eq!(30, get_num_of_days_in_month(2002, 06));
- assert_eq!(31, get_num_of_days_in_month(2002, 07));
- assert_eq!(31, get_num_of_days_in_month(2002, 08));
- assert_eq!(30, get_num_of_days_in_month(2002, 09));
+ assert_eq!(31, get_num_of_days_in_month(2002, 1));
+ assert_eq!(28, get_num_of_days_in_month(2002, 2));
+ assert_eq!(31, get_num_of_days_in_month(2002, 3));
+ assert_eq!(30, get_num_of_days_in_month(2002, 4));
+ assert_eq!(31, get_num_of_days_in_month(2002, 5));
+ assert_eq!(30, get_num_of_days_in_month(2002, 6));
+ assert_eq!(31, get_num_of_days_in_month(2002, 7));
+ assert_eq!(31, get_num_of_days_in_month(2002, 8));
+ assert_eq!(30, get_num_of_days_in_month(2002, 9));
assert_eq!(31, get_num_of_days_in_month(2002, 10));
assert_eq!(30, get_num_of_days_in_month(2002, 11));
assert_eq!(31, get_num_of_days_in_month(2002, 12));
- assert_eq!(31, get_num_of_days_in_month(2003, 01));
- assert_eq!(28, get_num_of_days_in_month(2003, 02));
- assert_eq!(31, get_num_of_days_in_month(2003, 03));
- assert_eq!(30, get_num_of_days_in_month(2003, 04));
- assert_eq!(31, get_num_of_days_in_month(2003, 05));
- assert_eq!(30, get_num_of_days_in_month(2003, 06));
- assert_eq!(31, get_num_of_days_in_month(2003, 07));
- assert_eq!(31, get_num_of_days_in_month(2003, 08));
- assert_eq!(30, get_num_of_days_in_month(2003, 09));
+ assert_eq!(31, get_num_of_days_in_month(2003, 1));
+ assert_eq!(28, get_num_of_days_in_month(2003, 2));
+ assert_eq!(31, get_num_of_days_in_month(2003, 3));
+ assert_eq!(30, get_num_of_days_in_month(2003, 4));
+ assert_eq!(31, get_num_of_days_in_month(2003, 5));
+ assert_eq!(30, get_num_of_days_in_month(2003, 6));
+ assert_eq!(31, get_num_of_days_in_month(2003, 7));
+ assert_eq!(31, get_num_of_days_in_month(2003, 8));
+ assert_eq!(30, get_num_of_days_in_month(2003, 9));
assert_eq!(31, get_num_of_days_in_month(2003, 10));
assert_eq!(30, get_num_of_days_in_month(2003, 11));
assert_eq!(31, get_num_of_days_in_month(2003, 12));
- assert_eq!(31, get_num_of_days_in_month(2004, 01));
- assert_eq!(29, get_num_of_days_in_month(2004, 02));
- assert_eq!(31, get_num_of_days_in_month(2004, 03));
- assert_eq!(30, get_num_of_days_in_month(2004, 04));
- assert_eq!(31, get_num_of_days_in_month(2004, 05));
- assert_eq!(30, get_num_of_days_in_month(2004, 06));
- assert_eq!(31, get_num_of_days_in_month(2004, 07));
- assert_eq!(31, get_num_of_days_in_month(2004, 08));
- assert_eq!(30, get_num_of_days_in_month(2004, 09));
+ assert_eq!(31, get_num_of_days_in_month(2004, 1));
+ assert_eq!(29, get_num_of_days_in_month(2004, 2));
+ assert_eq!(31, get_num_of_days_in_month(2004, 3));
+ assert_eq!(30, get_num_of_days_in_month(2004, 4));
+ assert_eq!(31, get_num_of_days_in_month(2004, 5));
+ assert_eq!(30, get_num_of_days_in_month(2004, 6));
+ assert_eq!(31, get_num_of_days_in_month(2004, 7));
+ assert_eq!(31, get_num_of_days_in_month(2004, 8));
+ assert_eq!(30, get_num_of_days_in_month(2004, 9));
assert_eq!(31, get_num_of_days_in_month(2004, 10));
assert_eq!(30, get_num_of_days_in_month(2004, 11));
assert_eq!(31, get_num_of_days_in_month(2004, 12));