***1、***(题目)
我国历法中的天干、地支和生肖的排列是有规律的。天干的顺序是“甲乙丙丁戊己庚辛壬癸”,地支的顺序是“子丑寅卯辰巳午未申酉戌亥”,生肖的顺序是“鼠牛虎兔龙蛇马羊猴鸡狗猪”。天干、地支、生肖的计算方法非常简单:将年份减去3后除以10得到余数是几,就对应于天干中的第几位;将年份减去3后除以12得到余数是几,则对应于地支中的第几位;生肖的计算方法和地支完全一致。例如,对2006年而言,将数字2006减去3后是2003,除以10后的余数是3,对应于天干中的第三位“丙”;将2003除以12的余数是11,所以对应地支中的倒数第二位“戌”。由此可知,2006年是“丙戌”年,生肖是“狗”。
根据以上思路,用Java写一个程序。程序提供一个声明形式为“public void getInfo(int year)”的方法,此方法接收一个int类型的代表年份的数字,然后计算并打印出相关信息。
package com.company;
import java.time.Year;
import java.util.*; //获取从键盘输入
public class Main {
private static int Year; // 设置静态变量用于存储year
public static void main(String[] args) {
// write your code here
int year;
System.out.println("请输入你要计算的年份");
Scanner input=new Scanner(System.in); //获取键盘上输入
year=input.nextInt(); //获取键盘上的int内容
System.out.println("您输入的年份是"+year);
Main text=new Main();
text.getInfo(year); //调用方法
}
public void getInfo(int year){
// 需要将year设置为静态变量
Year=year;
Year=(Year-3)%10; //天干
year=(year-3)%12; //地支
String[] god ={"甲","乙","丙","丁","戊","庚","辛","壬","癸" };
String []land={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
String [] Zodiac={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
System.out.println("成功调用函数方法");
System.out.println("对应于天干中的"+Year+"位"+ god[Year-1]);
System.out.println("对应地支中的"+year+"位:"+land[year-1]+"对应生肖为"+Zodiac[year-1]);
}
}
本意是将year设置一个静态变量,然后用于二次计算天干地支,但是试了半天,本人才疏学浅,确实不会,有会的友友望分享一波。
代码结果如下:
“C:\Program Files\Java\jdk-17.0.2\bin\java.exe” “-javaagent:D:\Installation\IntelliJ IDEA 2021.3.3\lib\idea_rt.jar=63412:D:\Installation\IntelliJ IDEA 2021.3.3\bin” -Dfile.encoding=UTF-8 -classpath E:\untitled\out\production\untitled com.company.Main
请输入你要计算的年份
2006
您输入的年份是2006
成功调用函数方法
对应于天干中的3位丙
对应地支中的11位:戌对应生肖为狗