Giter Club home page Giter Club logo

chinese-lunisolar-calendar's Introduction

Hi, welcome to my Github pages.

Things Related to My Projects

Rust JavaScript TypeScript Java C PHP Golang Bash

Ubuntu Server Linux Mint Android Windows

Tokio Rocket Axum napi-rs iced Node.js Webpack Express Fastify NestJS + Fastify Bootstrap Vite Vue.js Handlebars Tera Sass Nginx Apache httpd Docker

MySQL SQLite MongoDB Redis

chinese-lunisolar-calendar's People

Contributors

dependabot[bot] avatar magiclen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

chinese-lunisolar-calendar's Issues

panicked when show LunisolarDate for 2020-12-06

mycode

use chinese_lunisolar_calendar::chrono::prelude::*;
use chinese_lunisolar_calendar::{ChineseVariant, LunisolarDate};


fn main() {

    let lunisolar_date = LunisolarDate::from_naive_date(NaiveDate::from_ymd(2020, 12, 6)).unwrap();

    println!("{}",lunisolar_date.to_chinese_string(ChineseVariant::Simple));
}

error:

[ra@ubuntu test-lunardate2]$ RUST_BACKTRACE=full cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.01s
     Running `target/debug/test-lunardate2`
thread 'main' panicked at 'attempt to subtract with overflow', /home/ra/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/chinese-lunisolar-calendar-0.1.14/src/lunar_year.rs:47:24
stack backtrace:
   0:     0x55cb37edf340 - std::backtrace_rs::backtrace::libunwind::trace::h72c2fb8038f1bbee
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:96
   1:     0x55cb37edf340 - std::backtrace_rs::backtrace::trace_unsynchronized::h1e3b084883f1e78c
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/../../backtrace/src/backtrace/mod.rs:66
   2:     0x55cb37edf340 - std::sys_common::backtrace::_print_fmt::h3bf6a7ebf7f0394a
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/sys_common/backtrace.rs:79
   3:     0x55cb37edf340 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h2e8cb764b7fe02e7
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/sys_common/backtrace.rs:58
   4:     0x55cb37ef7abc - core::fmt::write::h7a1184eaee6a8644
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/fmt/mod.rs:1080
   5:     0x55cb37edd532 - std::io::Write::write_fmt::haeeb374d93a67eac
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/io/mod.rs:1516
   6:     0x55cb37ee146d - std::sys_common::backtrace::_print::h1d14a7f6ad632dc8
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/sys_common/backtrace.rs:61
   7:     0x55cb37ee146d - std::sys_common::backtrace::print::h301abac8bb2e3e81
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/sys_common/backtrace.rs:48
   8:     0x55cb37ee146d - std::panicking::default_hook::{{closure}}::hde0cb80358a6920a
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:208
   9:     0x55cb37ee1118 - std::panicking::default_hook::h9b1a691049a0ec8f
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:227
  10:     0x55cb37ee1af1 - std::panicking::rust_panic_with_hook::h2bdec87b60580584
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:577
  11:     0x55cb37ee1699 - std::panicking::begin_panic_handler::{{closure}}::h101ca09d9df5db47
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:484
  12:     0x55cb37edf7ac - std::sys_common::backtrace::__rust_end_short_backtrace::h3bb85654c20113ca
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/sys_common/backtrace.rs:153
  13:     0x55cb37ee1659 - rust_begin_unwind
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:483
  14:     0x55cb37ef6dd1 - core::panicking::panic_fmt::h48c31e1e3d550146
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/panicking.rs:85
  15:     0x55cb37ef6d1d - core::panicking::panic::h184ede6dd822ffb4
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/panicking.rs:50
  16:     0x55cb37ebeee6 - chinese_lunisolar_calendar::lunar_year::LunarYear::from_era::h78021992b46576c6
                               at /home/ra/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/chinese-lunisolar-calendar-0.1.14/src/lunar_year.rs:47
  17:     0x55cb37ebe328 - chinese_lunisolar_calendar::lunisolar_year::LunisolarYear::to_lunar_year::h5d9fba8c9f14fcd8
                               at /home/ra/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/chinese-lunisolar-calendar-0.1.14/src/lunisolar_year.rs:180
  18:     0x55cb37ebfe93 - chinese_lunisolar_calendar::lunisolar_date::LunisolarDate::write_to_chinese_string::h31347291961106db
                               at /home/ra/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/chinese-lunisolar-calendar-0.1.14/src/lunisolar_date.rs:406
  19:     0x55cb37ebfdb6 - chinese_lunisolar_calendar::lunisolar_date::LunisolarDate::to_chinese_string::hceaa99af2964b5f0
                               at /home/ra/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/chinese-lunisolar-calendar-0.1.14/src/lunisolar_date.rs:392
  20:     0x55cb37ebf045 - test_lunardate2::main::hf59dd78402add4fc
                               at /src/rust/test-lunardate2/src/main.rs:14
  21:     0x55cb37ebe53b - core::ops::function::FnOnce::call_once::heafbda881f3469cb
                               at /home/ra/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227
  22:     0x55cb37ebf12e - std::sys_common::backtrace::__rust_begin_short_backtrace::h1a46b5d3199c8c93
                               at /home/ra/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:137
  23:     0x55cb37ebf721 - std::rt::lang_start::{{closure}}::h33bc1e9c7246e7e8
                               at /home/ra/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:66
  24:     0x55cb37ee1f17 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::he179d32a5d10d957
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/ops/function.rs:259
  25:     0x55cb37ee1f17 - std::panicking::try::do_call::hcb3d5e7be089b2b4
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:381
  26:     0x55cb37ee1f17 - std::panicking::try::h7ac93b0cd56fb701
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:345
  27:     0x55cb37ee1f17 - std::panic::catch_unwind::h7b40e396c93a4fcd
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panic.rs:382
  28:     0x55cb37ee1f17 - std::rt::lang_start_internal::h142b9cc66267fea1
                               at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/rt.rs:51
  29:     0x55cb37ebf6f7 - std::rt::lang_start::hf502f24df0a95e3b
                               at /home/ra/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:65
  30:     0x55cb37ebf11a - main
  31:     0x7f2b210ef1e2 - __libc_start_main
  32:     0x55cb37ebe0ee - _start
  33:                0x0 - <unknown>
[ra@ubuntu test-lunardate2]$ 

``

It should use "〇" to represent "0" in year in simplified Chinese

根据《中华人民共和国国家标准 出版物上数字用法》(GB/T 15835—2011)的 5.2.5 节,大陆简体在使用汉字表示年份时应当使用“〇”:

图片

当然,这是一份用于出版物的建议性标准(GB/T 而非 GB),或许可以用一个选项进行控制?或者提供像 strftime 那样的 API 用来自定义输出格式?

panic

use chinese_lunisolar_calendar::chrono::prelude::*;
use chinese_lunisolar_calendar::LunisolarDate;
use chinese_lunisolar_calendar::LunisolarYear;
use chinese_lunisolar_calendar::SolarYear;
use chinese_lunisolar_calendar::LunarMonth;
use chinese_lunisolar_calendar::LunarDay;

fn main() {
    let solar_date = LunisolarDate::from_lunisolar_year_lunar_month_day(
        LunisolarYear::from_solar_year(SolarYear::from_u16(2004)).unwrap(),
        LunarMonth::Eleventh,
        LunarDay::Twenty,
    )
    .map(|x| x.to_solar_date());
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.