用C# 重写数字日期转换为汉字日期并具有分割功能函数类

本文介绍了一种将ACCESS中的自定义VBA函数HZDate移植到C#的方法,详细展示了日期转换函数的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很悲剧的是,存在ACCESS模块里的自定义函数C#程序里不能使用,报错为“函数未定义”,这个查询可是存放在ACCESS里的啊!?微软的技术文章里只有关于调用EXECL和WORD的VBA,没有ACCESS的。微软这是什么狗屁逻辑?现在只有在C#里重写函数。花了好一些功夫才改写了ACCESS 中VBA的HZDate函数。还有货币的转换等着我……


        public static string HZDate(DateTime myDate, string ymd)
        {
            if (myDate == null)
            {
                return null;
            }
            int i, intday = int.Parse(myDate.Day.ToString());
            string Cyear = "", Cmonth = "", Cday = "", CDate = "";
            string year = myDate.Year.ToString();
            string month = myDate.Month.ToString();
            string day = myDate.Day.ToString();
            string cn = "○一二三四五六七八九";
            for (i = 0 ;i < year.Length; i++)
            {
                Cyear = Cyear + cn.Substring(int.Parse(year.Substring(i,1)),1);
            }

            switch (month)
            {
                case "12":
                    Cmonth = "十二";
                    break;
                case "11":
                    Cmonth = "十一";
                    break;
                case "10":
                    Cmonth = "十";
                    break;
                default:
                    Cmonth = cn.Substring(int.Parse(month), 1);
                    break;
            }

                int DN1 = intday / 10;
                int DN2 = intday % 10;
 
                 if (DN1 > 1)
                {
                    Cday = cn.Substring(DN1, 1);
                 }
                 if (DN1 > 0)
                 {
                     Cday = Cday + "十";
                 }
                 if (DN2 != 0)
                 {
                     Cday = Cday + cn.Substring(DN2, 1);
                 }
                 CDate = Cyear + "年" + Cmonth + "月" + Cday + "日";
                 switch (ymd)
                 {
                     case "y":
                         return Cyear;
                     case "m":
                         return Cmonth;
                     case "d":
                         return Cday;
                     case "ymd":
                         return CDate;
                     default:
                         return null;
                 }
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值