none
大家看看是不是.net的这个类有错误 RRS feed

  • 问题

  • 我想说的类是ChineseLunisolarCalendar, 我在用这个类的实例来获得与指定阳历日期相应的中国阴历日期时发现 今年的6.23本应是阴历的第二个五月的开始,也是就说应该是五月。 可在用(new ChineseLunisolarCalendar()).GetMonth(dateTime)获得阴历时, 得到的却是六月。 不知是我的方法使用有错误,还是这个类没有搞清中国阴历的算法? 请大家帮忙看看。
    做最好的自己
    2009年4月18日 15:27

答案

  • 你好!
         这里好象的确存在问题,2009,6,23应该是阴历的五月初一,他计算的是6月,我估计和闰年有关!
        
    周雪峰
    2009年4月19日 2:33
    版主
  • ChineseLunisolarCalendar对于闰月的处理就是这样:整个月份有13个,闰5月就是6月了!
    你可以用GetMonthsInYear来获得是否有闰月!返回13就说明有闰月
    你可以用GetLeapMonth 来获得那个月是闰月!
    然后自己做处理来显示!

    周雪峰
    2009年4月19日 2:47
    版主

全部回复

  • DateTime fDate1 = new DateTime(2009, 6, 13);
    ChineseLunisolarCalendar fChineseLunisolarCalendar = new ChineseLunisolarCalendar();
    int month = fChineseLunisolarCalendar.GetMonth(fDate1); // <- month = 5

    没有问题的,楼主请检查一下代码看看是不是其它地方有问题
    知识改变命运,奋斗成就人生!
    2009年4月18日 16:30
    版主
  • 你好!
         这里好象的确存在问题,2009,6,23应该是阴历的五月初一,他计算的是6月,我估计和闰年有关!
        
    周雪峰
    2009年4月19日 2:33
    版主
  • ChineseLunisolarCalendar对于闰月的处理就是这样:整个月份有13个,闰5月就是6月了!
    你可以用GetMonthsInYear来获得是否有闰月!返回13就说明有闰月
    你可以用GetLeapMonth 来获得那个月是闰月!
    然后自己做处理来显示!

    周雪峰
    2009年4月19日 2:47
    版主