C#转换农历的简单方法

开发 后端
本文介绍C#转换农历,改装了一下如DateTime时间形式,实现了公历农历转换的功能,但是只能算到1900~2100年之间的。

C#转换农历

原来还准备自己写算法,并研究农历规则。发现那太难和麻烦了,光是农历的推算那就我等专门研究历法的人一下搞懂的。后来发现.NET类库也提供一些基础的农历类System.Globalization.ChineseLunisolarCalendar。改装了一下如DateTime时间形式,实现了公历农历转换的功能,但是只能算到1900~2100年之间的。基本够日常使用了。C#转换农历代码如下:

  1. usingSystem;  
  2. usingSystem.Collections.Generic;  
  3. usingSystem.Text;  
  4.  
  5. namespaceSystem  
  6. ...{  
  7. /**////<summary> 
  8. ///中国常用农历日期时间类  
  9. ///zj53hao@qq.comhttp://hi.csdn.net/zj53hao  
  10. ///</summary> 
  11. classChinaDateTime  
  12. ...{  
  13. privateintyear,month,dayOfMonth;  
  14. privateboolisLeap;  
  15. publicDateTimetime;  
  16.  
  17. /**////<summary> 
  18. ///获取当前日期的农历年  
  19. ///</summary> 
  20. publicintYear  
  21. ...{  
  22. get...{returnyear;}  
  23. }  
  24.  
  25. /**////<summary> 
  26. ///获取当前日期的农历月份  
  27. ///</summary> 
  28. publicintMonth  
  29. ...{  
  30. get...{returnmonth;}  
  31. }  
  32.  
  33. /**////<summary> 
  34. ///获取当前日期的农历月中天数  
  35. ///</summary> 
  36. publicintDayOfMonth  
  37. ...{  
  38. get...{returndayOfMonth;}  
  39. }  
  40.  
  41. /**////<summary> 
  42. ///获取当前日期是否为闰月中的日期  
  43. ///</summary> 
  44. publicboolIsLeap  
  45. ...{  
  46. get...{returnisLeap;}  
  47. }  
  48.  
  49. System.Globalization.ChineseLunisolarCalendarcc;  
  50. /**////<summary> 
  51. ///返回指定公历日期的阴历时间  
  52. ///</summary> 
  53. ///<paramnameparamname="time"></param> 
  54. publicChinaDateTime(DateTimetime)  
  55. ...{  
  56. cc=newSystem.Globalization.ChineseLunisolarCalendar();  
  57.  
  58. if(time>cc.MaxSupportedDateTime||time<cc.MinSupportedDateTime)  
  59. thrownewException("参数日期时间不在支持的范围内,支持范围:
    "+cc.MinSupportedDateTime.ToShortDateString()+"到
    "+cc.MaxSupportedDateTime.ToShortDateString());  
  60. year=cc.GetYear(time);  
  61. month=cc.GetMonth(time);  
  62. dayOfMonth=cc.GetDayOfMonth(time);  
  63. isLeap=cc.IsLeapMonth(year,month);  
  64. if(isLeap)month-=1;  
  65. this.time=time;  
  66.  

以上介绍C#转换农历

【编辑推荐】

  1. 定义C#接口学习经验
  2. C# ListBox学习笔记
  3. 操作C# Dataset介绍
  4. C# ODBC访问MySQL数据库
  5. 浅析C#和Java不同点
责任编辑:佚名 来源: IT168
相关推荐

2009-08-21 17:55:14

C#获取摄像头

2009-09-08 10:37:57

C#遍历CheckBo

2009-08-19 13:06:37

C#操作注册表

2009-08-28 09:55:15

C#时间间隔

2009-07-30 17:10:51

C#时间间隔

2009-08-24 14:14:56

C#导入Excel表

2009-08-20 16:25:59

C# 匿名方法

2009-08-14 17:27:56

C#方法参数

2009-07-30 15:57:30

C#时间

2010-08-06 13:23:58

NFS配置

2010-07-20 14:07:31

更改TELNET端口

2010-06-08 17:46:31

OpenSUSE安装

2010-09-30 14:01:38

2010-11-23 16:21:07

MySQL大表备份

2010-03-15 14:10:34

ubuntu系统

2011-04-06 09:09:17

MySQL数据库备份

2011-05-18 13:37:26

LINQ

2010-03-03 13:56:43

Linux ubant

2009-02-05 14:48:51

跳出循环多层循环编程

2023-03-16 08:14:57

点赞
收藏

51CTO技术栈公众号