我想创建Calendar
,但MonthDisplayHelper
返回错误的值( 31 2013年2月, 28 天) 。我做错了什么?
DateTime mRightNow = DateTime.Now;
MonthDisplayHelper mHelper = new MonthDisplayHelper(mRightNow.Year, mRightNow.Month, 2);
Log.Info("cal", mHelper.NumberOfDaysInMonth);
答案 0 :(得分:4)
你正在混合.Net和Java DateTime类!
.Net月份是从1开始的
Java月份是从0开始的
所以DateTime.Now是.Net并在第二个月(二月)的某一天返回
但是MonthDisplayHelper是Java,所以将2解释为第3个月(3月)
使用mRightNow-1
解决此问题或许可以考虑使用扩展方法
使其更具可读性public static class JavaDateTimeExtensions
{
public static int JavaMonth(this DateTime input)
{
return input.Month - 1;
}
}