MonthDisplayHelper.NumberOfDaysInMonth在MonoDroid中返回不正确的值

时间:2013-02-07 14:53:31

标签: android datetime mono xamarin.android android-calendar

我想创建Calendar,但MonthDisplayHelper返回错误的值( 31 2013年2月, 28 天) 。我做错了什么?

DateTime mRightNow = DateTime.Now;
MonthDisplayHelper mHelper = new MonthDisplayHelper(mRightNow.Year, mRightNow.Month, 2);
Log.Info("cal", mHelper.NumberOfDaysInMonth);

1 个答案:

答案 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;
    }
}