using System;
namespace ChineseEra
{
internal class Program
{
static void Main(string[] args)
{
char[] gongYuanQianHou = { '前', '后' };
string[] tianGan = { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};
string[] diZhi = { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};
while (true)
{
int nianGan = 0, nianZhi = 0;
//输入部分
Console.Write("请选择输入年份是公元前还是公元后(前/后):");
char gongYuan = Convert.ToChar(Console.ReadLine());
Console.Write("请输入年份:");
int year = int.Parse(Console.ReadLine());
int m = year % 10;
int n = year % 12;
//公元前后标志位判断,公元前为1,公元后为0
int flag = 0;
if (gongYuan == gongYuanQianHou[0])
flag = 1;
else if (gongYuan == gongYuanQianHou[1])
flag = 0;
switch(flag)
{
case 0://公元前
if (m > 3)
nianGan = m - 3;
else
nianGan = m - 3 + 10;
if (n > 3)
nianZhi = n - 3;
else
nianZhi = n - 3 + 12;
break;
case 1://公元后
if (m < 8)
nianGan = 8 - m;
else
nianGan = 8 - m + 10;
if (n < 10)
nianZhi = 10 - n;
else
nianZhi = 10 - n + 12;
break;
}
Console.WriteLine("公元{0}{1}年是{2}{3}年", gongYuan, year, tianGan[nianGan - 1], diZhi[nianZhi - 1]);
Console.ReadLine();
}
}
}
}
【C#】公元前后天干地支纪年法
最新推荐文章于 2023-03-09 16:06:43 发布