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

来源:互联网 发布:淘宝网9.9包邮专区 编辑:程序博客网 时间:2024/06/03 22:28

很悲剧的是,存在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;                 }        }


0 0