[java]干支纪年法(循环练习)
干支纪年法属于上古以来中国纪年历法,其由十天干十二地支按照一定顺序结合来表示年份.
十天干分别为:
甲、乙、丙、丁、戊、己、庚、辛、壬、癸
十二地支分别为:
子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥
干支纪年基本规则:
甲子、乙丑......癸酉对应结束后此时应当对应甲戊,乙亥,丙子.........
以此类推,所以干支纪年法六十年一轮回.
当我们想要用循环输出一个轮回的干支纪年法的时候,基本思路如下:
1、创建两个数组分存放天干地支
2、使用for循环依次输出对应天干地支
代码如下:
public class practice {public static void main(String[] args) {String sky[] = {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};String land[] = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};String[] array = new String[60];int j = 0;int freq = 0;int k=0;while(freq < 60){ //打印六十次for(int i = 0;i < 10;i++){ //十天干if(j == 12){ //十二地支,由于数组下标从0开始,所以当地支等于十二时归零j = 0;}System.out.print(" "+sky[i]+land[j]+"年");k++;if(k==12){ //为方便检查,一行打印十二次后回车System.out.println();k=0;}freq++; //打印次数j++;}}}
结果如下:
特别注意的是当地支到11时就需要归零,否则打印时就会访问越界
下面看下如何输入一个年份判断其是什么年:
判断方法:
天干:用年份减3除10,取余数(余数1,2,3,4,5......9,0,分别对应甲,乙,丙,丁......癸)
地支:用年份减3除12,取余数(余数1,2,3,4,5......11,0,分别对应子,丑,寅,卯......亥)
代码如下:
import java.util.Scanner;public class practice {public static void main(String[] args) {String sky[] = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};String land[] = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};Scanner scanner = new Scanner(System.in);System.out.print("请输入年份:");int input = scanner.nextInt();int i = (input - 3) % 10; //计算天干int j = (input - 3) % 12; //计算地支if (i == 0) {i = 10; //余数为0对应天干最后一个}if (j == 0) {j = 12; //余数为0对应地支最后一个}System.out.println(input + "是" + sky[i - 1] + land[j - 1] + "年");}
}
结果:
[java]干支纪年法(循环练习)相关推荐
- Java实现干支纪年法
public class 干支纪年法 {// 甲.乙.丙.丁.戊.己.庚.辛.壬.癸//public static final int[] skyBranch = new int[] { 0, 1, ...
- 干支纪年法简便算法_初中历史四种纪年法,每一种都要掌握
中国历史上的四种纪年法 一.公元纪年法 公元纪年,也称公历纪年,或基督纪年.它以相传的耶稣基督诞生年即公元元年作为历史算起,在中国这一年正好是西汉平帝元始元年.以这一年为界,在此以前的时间称公元前多少 ...
- 干支纪年法简便算法_初中历史所涉及的四种纪年法
一.公元纪年法 公元纪年,也称公历纪年,或基督纪年.它以相传的耶稣基督诞生年即公元元年作为历史算起,在中国这一年正好是西汉平帝元始元年.以这一年为界,在此以前的时间称公元前多少年,在此以后的时间和公元 ...
- 干支纪年法简便算法_初中阶段常用的四种历史纪年法
一.公元纪年法 公元纪年,也称公历纪年,或基督纪年.它以相传的耶稣基督诞生年即公元元年作为历史算起,在中国这一年正好是西汉平帝元始元年.以这一年为界,在此以前的时间称公元前多少年,在此以后的时间和公元 ...
- 7-3 干支纪年法 (100 分)
中国农历采取天干地支作为计算年,月,日,时的方法,就是把每一个天干和地支按照一定的顺序而不重复地搭配起来,用来作为纪年,纪月,纪日,纪时的代号.把"天干"中的一个字摆在前面,后面配 ...
- 干支纪年法简便算法_民间玄学:那些年我理解的何谓“天干”,“地支”,“干支”...
文/天泽子 在我很小的时候,大概6岁左右,父亲带着我跟这一方面的知识开始接触,那个时候的我不明白天干,地支是什么? 父亲的小学文化程度,只对我说"天干分别为:甲(jiǎ).乙(yǐ).丙(b ...
- 干支纪年法简便算法_天干地支的简单算法
大家在看古代字画的时候一定会发现 己亥 壬寅等干支纪年法,比如"岁在癸丑" 虽然现在的我们很少用干支纪年法了,但在历史考试题以及公务员考试题中难免会有计算天干地支的题目,就算不为了 ...
- 万年历-农历-干支纪年法
干支纪年法的简便算法 传统的计算法,必须知道一个已知年,然后往前后推算,有一定的难度,下面我给大家介绍一种干支纪年法的简便算法,每个字都有对应的一个符号.如下表: 4 5 6 7 8 9 0 1 2 ...
- 风火编程--干支纪年法的完整转换(可用于八字推算)
严谨的干支纪年法转换 干支纪年法的年,月分界点与公历不同, 因此单纯的使用公历日期转换,得到的结果必然有一部分是错误的. 目前通用的解决方案是使用数据库存储几百年的数据,然后通过查库实现. 本程序已经 ...
最新文章
- hessiancpp编译和使用(C++版)
- HDU2066(Dijstra算法)
- Ubuntu 12.10 安装 jdk-7u10-linux-x64.tar.gz
- os.path.join
- 数据结构(Data structures)(二):结构体指针
- Everest 0.6 添加开机自启动程序
- mac11.5.2版本虚拟机SeaBIOS不引导,kvm虚拟机状态为pause
- 第二阶段团队冲刺(七)
- JAVA软件图片浏览下载_java模拟浏览器下载图片
- Spring MVC应用程序中的Thymeleaf模板布局,无扩展
- 深入理解支持向量机(SVM)
- OOB与COM交互读写本地文件
- PX4环境git submodule update --init --recursive失败的解决办法
- pandas中计算两列相乘
- msyql 1062
- 转帖:李开复的“创新工厂”为何失败?原作者QuarterThousand
- 宝塔面板干什么用的?
- 一文搞懂CSS 3D动画效果
- VB如何只读取字符串中的数字部分??
- Python 防止反编译