CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
algo2.hpp File Reference
#include <format>
#include <ranges>
#include <vector>
#include <cassert>
#include <cstdint>
#include <utility>
#include <optional>
#include <iterator>
#include <algorithm>
#include <stdexcept>
#include <functional>
#include "cache.hpp"
#include "common.hpp"
#include "datetime.hpp"
#include "jieqi.hpp"
#include "moon_phase.hpp"
#include "julian_day.hpp"

Classes

struct  calendar::lunar::algo2::LunarMonth
 The metadata of a lunar month. More...
struct  calendar::lunar::algo2::LunarMonthGenerator
 Generate lunar-month metadata after a JDE(TT). 生成给定 JDE(TT) 后的阴历月元数据。 More...
struct  calendar::lunar::algo2::LunarYearContext
 The raw lunar year information, can be processed to LunarYear. More...
 Specialize AlgoMetadata for Algo::ALGO_2. More...

Namespaces

namespace  calendar
namespace  calendar::lunar
namespace  calendar::lunar::algo2
namespace  calendar::lunar::common

Typedefs

using calendar::lunar::algo2::LunarYear
using calendar::lunar::algo2::LunarMonthChunk
 A chunk of lunar months.

Functions

auto calendar::lunar::algo2::jde_to_utc8 (const double jde) -> calendar::Datetime
 Convert a JDE (TT) moment to fixed-offset east-eight civil time for lunar date assignment. 把 JDE(TT)时刻转换为固定东八区民用时间,用于确定阴历日期。
auto calendar::lunar::algo2::calc_lunar_month_chunks (int32_t year) -> std::pair< LunarMonthChunk, LunarMonthChunk >
 Calculate the lunar month chunks for the given year.
auto calendar::lunar::algo2::leap_month_in_chunk (const LunarMonthChunk &chunk) -> std::optional< int32_t >
 Get the leap month in the given chunk.
auto calendar::lunar::algo2::calc_lunar_year_start_moment (const LunarMonthChunk &chunk, std::optional< int32_t > leap_month) -> calendar::Datetime
 Get the start moment of the lunar year.
auto calendar::lunar::algo2::create_lunar_year_context (int32_t year) -> LunarYearContext
 Create a LunarYearContext for the given year, which basically contains the month info, including leap month.
auto calendar::lunar::algo2::calc_lunar_year (int32_t year) -> LunarYear
 Calculate the lunar year information for the given year. 计算给定年份的阴历年信息。
auto calendar::lunar::algo2::get_info_for_year (const int32_t year) -> LunarYear
 Get the lunar year information for the given year, using cache. 返回给定年份的阴历年信息。使用缓存。
auto calendar::lunar::algo2::bounds () -> const common::AlgoBounds &
 The bounds of the algorithm, i.e. the supported range of lunar and Gregorian dates.

Variables

constexpr int32_t calendar::lunar::algo2::START_YEAR
 The first supported lunar year.
constexpr int32_t calendar::lunar::algo2::END_YEAR
 The last supported lunar year.