【C#】公元前后天干地支纪年法

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();

            }
        }
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值