nepdate-cli 0.1.5

A library for converting between Gregorian and Bikram Sambat (Nepali) dates.
Documentation
// precomputed_data.rs

// This array stores the number of days in each month for a range of Bikram Sambat years.
// NP_MONTHS_DATA[year_index][month_index] gives days in that month.
// NP_MONTHS_DATA[year_index][12] stores the total days in that year (sum of months 0-11).
// The year_index corresponds to (BS_Year - BS_START_YEAR).
// This data is crucial for efficient conversion between Gregorian and BS dates for
// the precomputed range (2000 BS to 2099 BS).
pub const NP_MONTHS_DATA: [[i32; 13]; 100] = [
    // Year 2000 BS (index 0)
    [30,32,31,32,31,30,30,30,29,30,29,31,365],
    // Year 2001 BS (index 1)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2002 BS (index 2)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2003 BS (index 3)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2004 BS (index 4)
    [30,32,31,32,31,30,30,30,29,30,29,31,365],
    // Year 2005 BS (index 5)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2006 BS (index 6)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2007 BS (index 7)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2008 BS (index 8)
    [31,31,31,32,31,31,29,30,30,29,29,31,365],
    // Year 2009 BS (index 9)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2010 BS (index 10)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2011 BS (index 11)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2012 BS (index 12)
    [31,31,31,32,31,31,29,30,30,29,30,30,365],
    // Year 2013 BS (index 13)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2014 BS (index 14)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2015 BS (index 15)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2016 BS (index 16)
    [31,31,31,32,31,31,29,30,30,29,30,30,365],
    // Year 2017 BS (index 17)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2018 BS (index 18)
    [31,32,31,32,31,30,30,29,30,29,30,30,365],
    // Year 2019 BS (index 19)
    [31,32,31,32,31,30,30,30,29,30,29,31,366],
    // Year 2020 BS (index 20)
    [31,31,31,32,31,31,30,29,30,29,30,30,365],
    // Year 2021 BS (index 21)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2022 BS (index 22)
    [31,32,31,32,31,30,30,30,29,29,30,30,365],
    // Year 2023 BS (index 23)
    [31,32,31,32,31,30,30,30,29,30,29,31,366],
    // Year 2024 BS (index 24)
    [31,31,31,32,31,31,30,29,30,29,30,30,365],
    // Year 2025 BS (index 25)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2026 BS (index 26)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2027 BS (index 27)
    [30,32,31,32,31,30,30,30,29,30,29,31,365],
    // Year 2028 BS (index 28)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2029 BS (index 29)
    [31,31,32,31,32,30,30,29,30,29,30,30,365],
    // Year 2030 BS (index 30)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2031 BS (index 31)
    [30,32,31,32,31,30,30,30,29,30,29,31,365],
    // Year 2032 BS (index 32)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2033 BS (index 33)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2034 BS (index 34)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2035 BS (index 35)
    [30,32,31,32,31,31,29,30,30,29,29,31,365],
    // Year 2036 BS (index 36)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2037 BS (index 37)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2038 BS (index 38)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2039 BS (index 39)
    [31,31,31,32,31,31,29,30,30,29,30,30,365],
    // Year 2040 BS (index 40)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2041 BS (index 41)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2042 BS (index 42)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2043 BS (index 43)
    [31,31,31,32,31,31,29,30,30,29,30,30,365],
    // Year 2044 BS (index 44)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2045 BS (index 45)
    [31,32,31,32,31,30,30,29,30,29,30,30,365],
    // Year 2046 BS (index 46)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2047 BS (index 47)
    [31,31,31,32,31,31,30,29,30,29,30,30,365],
    // Year 2048 BS (index 48)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2049 BS (index 49)
    [31,32,31,32,31,30,30,30,29,29,30,30,365],
    // Year 2050 BS (index 50)
    [31,32,31,32,31,30,30,30,29,30,29,31,366],
    // Year 2051 BS (index 51)
    [31,31,31,32,31,31,30,29,30,29,30,30,365],
    // Year 2052 BS (index 52)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2053 BS (index 53)
    [31,32,31,32,31,30,30,30,29,29,30,30,365],
    // Year 2054 BS (index 54)
    [31,32,31,32,31,30,30,30,29,30,29,31,366],
    // Year 2055 BS (index 55)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2056 BS (index 56)
    [31,31,32,31,32,30,30,29,30,29,30,30,365],
    // Year 2057 BS (index 57)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2058 BS (index 58)
    [30,32,31,32,31,30,30,30,29,30,29,31,365],
    // Year 2059 BS (index 59)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2060 BS (index 60)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2061 BS (index 61)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2062 BS (index 62)
    [30,32,31,32,31,31,29,30,29,30,29,31,365],
    // Year 2063 BS (index 63)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2064 BS (index 64)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2065 BS (index 65)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2066 BS (index 66)
    [31,31,31,32,31,31,29,30,30,29,29,31,365],
    // Year 2067 BS (index 67)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2068 BS (index 68)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2069 BS (index 69)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2070 BS (index 70)
    [31,31,31,32,31,31,29,30,30,29,30,30,365],
    // Year 2071 BS (index 71)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2072 BS (index 72)
    [31,32,31,32,31,30,30,29,30,29,30,30,365],
    // Year 2073 BS (index 73)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2074 BS (index 74)
    [31,31,31,32,31,31,30,29,30,29,30,30,365],
    // Year 2075 BS (index 75)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2076 BS (index 76)
    [31,32,31,32,31,30,30,30,29,29,30,30,365],
    // Year 2077 BS (index 77)
    [31,32,31,32,31,30,30,30,29,30,29,31,366],
    // Year 2078 BS (index 78)
    [31,31,31,32,31,31,30,29,30,29,30,30,365],
    // Year 2079 BS (index 79)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2080 BS (index 80)
    [31,32,31,32,31,30,30,30,29,29,30,30,365],
    // Year 2081 BS (index 81)
    [31,32,31,32,31,30,30,30,29,30,29,31,366],
    // Year 2082 BS (index 82)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2083 BS (index 83)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2084 BS (index 84)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2085 BS (index 85)
    [30,32,31,32,31,30,30,30,29,30,29,31,365],
    // Year 2086 BS (index 86)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2087 BS (index 87)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2088 BS (index 88)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2089 BS (index 89)
    [30,32,31,32,31,31,29,30,29,30,29,31,365],
    // Year 2090 BS (index 90)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2091 BS (index 91)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2092 BS (index 92)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2093 BS (index 93)
    [31,31,31,32,31,31,29,30,30,29,29,31,365],
    // Year 2094 BS (index 94)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2095 BS (index 95)
    [31,31,32,32,31,30,30,29,30,29,30,30,365],
    // Year 2096 BS (index 96)
    [31,32,31,32,31,30,30,30,29,29,30,31,366],
    // Year 2097 BS (index 97)
    [31,31,31,32,31,31,29,30,30,29,30,30,365],
    // Year 2098 BS (index 98)
    [31,31,32,31,31,31,30,29,30,29,30,30,365],
    // Year 2099 BS (index 99)
    [31,32,31,32,31,30,30,29,30,29,30,30,365],
];

// The number of years for which precomputed data is available.
// This value is derived from the size of the NP_MONTHS_DATA array.
pub const NP_DATA_YEAR_COUNT: usize = NP_MONTHS_DATA.len();