lunar

Java 阴历阳历转换

匿名 (未验证) 提交于 2019-12-02 21:40:30
工具类 import java.util.Arrays; import java.util.Date; import java.util.GregorianCalendar; /** * 工具类,实现阴阳历互转 * * @author luohao */ public class LunarCalendar { /** * 支持转换的最小农历年份 */ public static final int MIN_YEAR = 1900; /** * 支持转换的最大农历年份 */ public static final int MAX_YEAR = 2099; /** * 公历每月前的天数 */ private static final int[] DAYS_BEFORE_MONTH = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; /** * 用来表示1900年到2099年间农历年份的相关信息,共24位bit的16进制表示,其中: * 1. 前4位表示该年闰哪个月; * 2. 5-17位表示农历年份13个月的大小月分布,0表示小,1表示大; * 3. 最后7位表示农历年首(正月初一)对应的公历日期。 * 以2014年的数据0x955ABF为例说明: * 1001 0101 0101 1010 1011

1891-2100年php日历代码

…衆ロ難τιáo~ 提交于 2019-11-30 03:26:12
<?php /* * 1891-2100年 农历 节气 节日 */ header("Content-Type:text/html;charset=utf-8"); class Lunar { var $MIN_YEAR = 1891; var $MAX_YEAR = 2100; var $lunarInfo = array( array(0,2,9,21936),array(6,1,30,9656),array(0,2,17,9584),array(0,2,6,21168),array(5,1,26,43344),array(0,2,13,59728), array(0,2,2,27296),array(3,1,22,44368),array(0,2,10,43856),array(8,1,30,19304),array(0,2,19,19168),array(0,2,8,42352), array(5,1,29,21096),array(0,2,16,53856),array(0,2,4,55632),array(4,1,25,27304),array(0,2,13,22176),array(0,2,2,39632), array(2,1,22,19176),array(0,2,10,19168),array(6,1,30,42200),array(0,2,18,42192)

CF1106F Lunar New Year and a Recursive Sequence——矩阵快速幂&&bsgs

时光毁灭记忆、已成空白 提交于 2019-11-29 09:41:57
题意 设 $$f_i = \left\{\begin{matrix} 1 , \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i < k\\ \prod_{j=1}^k f_{i-j}^{b_j} \ mod \ p, \ \ \ \ \ i > k \end{matrix}\right.$$ 求 $f_k$($1 \leq f_k < p$),使得 $f_m = n$.($1 \leq k\leq 100$) 分析 $f_n$ 可以表示成 ${f_k}^x$ 的形式,也就是指数的线性递推式,用矩阵快速幂求出最终 $f_n$ 中的次数就行了。 $$\begin{bmatrix} f_k\\ f_{k-1}\\ \vdots \\ f_1 \end{bmatrix} = \begin{bmatrix} b_1 & b_2 & \cdots & b_k\\ 1 & 0 & 0 & 0\\ \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 1 & 0 \end{bmatrix} \cdot \begin{bmatrix} f_{k-1}\\ f_{k-2}\\ \vdots \\ f_0 \end{bmatrix}$$ 即 $F_n = B\cdot F_{n-1} = B^{n-k}F_k$

ros 源码安装

不想你离开。 提交于 2019-11-27 10:11:16
版本lunar, 系统版本debian 9.8 参考: http://wiki.ros.org/lunar/Installation/Source 1. Installing bootstrap dependencies $ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential 2. Initializing rosdep $ sudo rosdep init $ rosdep update $ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws 2.1 Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception $ rosinstall_generator desktop_full --rosdistro lunar --deps --tar > lunar-desktop-full.rosinstall $ wstool init -j8 src lunar-desktop-full.rosinstall 2.2

D. Lunar New Year and a Wander

落爺英雄遲暮 提交于 2019-11-27 10:08:08
题目链接: http://codeforces.com/problemset/problem/1106/D 题意:给定一张 n 个点, m 条双向边的图,从 1 号点出发,沿双向边行走(可以重复经过一个点)。当经过一个之前未经过的点时,记录下其编号。这些编号组成一个长度为 n的序列。求字典序最小的序列。 思路: 用字典序最小的方法走过图上的所有点,其实就是遍历整张图。因为要满足字典序最小,我们很容易想到Dj算法里面我们用优先队列去维护,使每次都走字典序列最小的。注意本题可以重复走,所以这个算法肯定是正确的 1 #include <iostream> 2 #include <time.h> 3 #include <algorithm> 4 #include <stdio.h> 5 #include <stdlib.h> 6 #include <cstring> 7 #include <map> 8 #include <queue> 9 10 typedef long long LL; 11 12 using namespace std; 13 const int maxn = 2e5 + 10; 14 15 struct Edge{ 16 int to; 17 int next; 18 }edge[maxn]; 19 20 int cnt = 0; 21 int head[maxn]

python实现农历和阳历日期转换

柔情痞子 提交于 2019-11-26 14:10:25
需安装sxtwl包,命令如下 pip install sxtwl 农历(Lunar calendar)<->阳历(solar calendar)转换 代码如下(基于python3): import sxtwl #日历中文索引 ymc = [u"十一", u"十二", u"正", u"二", u"三", u"四", u"五", u"六", u"七", u"八", u"九", u"十" ] rmc = [u"初一", u"初二", u"初三", u"初四", u"初五", u"初六", u"初七", u"初八", u"初九", u"初十", \ u"十一", u"十二", u"十三", u"十四", u"十五", u"十六", u"十七", u"十八", u"十九", \ u"二十", u"廿一", u"廿二", u"廿三", u"廿四", u"廿五", u"廿六", u"廿七", u"廿八", u"廿九", u"三十", u"卅一"] # 日历库实例化 lunar = sxtwl.Lunar() # 1.阴历转阳历 solar_day = lunar.getDayByLunar(2019,7,27) print("公历(阳历):{0}年{1}月{2}日".format(solar_day.y, solar_day.m, solar_day.d)) # 2.阳历转阴历 from