我想创建一个Calendar
,但MonthDisplayHelper
返回的值不正确(31表示 2013 年 2 月,即28天)。我究竟做错了什么?
DateTime mRightNow = DateTime.Now;
MonthDisplayHelper mHelper = new MonthDisplayHelper(mRightNow.Year, mRightNow.Month, 2);
Log.Info("cal", mHelper.NumberOfDaysInMonth);
我想创建一个Calendar
,但MonthDisplayHelper
返回的值不正确(31表示 2013 年 2 月,即28天)。我究竟做错了什么?
DateTime mRightNow = DateTime.Now;
MonthDisplayHelper mHelper = new MonthDisplayHelper(mRightNow.Year, mRightNow.Month, 2);
Log.Info("cal", mHelper.NumberOfDaysInMonth);
您正在混合 .Net 和 Java DateTime 类!
.Net 月数以 1 为基础
Java 月份是从 0 开始的
所以 DateTime.Now 是 .Net 并在第二个月(二月)的某一天返回
但是 MonthDisplayHelper 在 Java 中,因此将 2 解释为第三个月(三月)
使用 mRightNow-1 修复此问题
也许考虑使用扩展方法使其更具可读性
public static class JavaDateTimeExtensions
{
public static int JavaMonth(this DateTime input)
{
return input.Month - 1;
}
}