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

标签 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);

最佳答案

您正在混合使用 .Net 和 Java DateTime 类!

.净月从1开始

Java 月份是从 0 开始的

所以 DateTime.Now 是 .Net 并在第二个月(二月)的某一天返回

但是 MonthDisplayHelper 在 Java 中,因此将 2 解释为第 3 个月(三月)


使用 mRightNow-1 修复此问题

也许考虑使用扩展方法使其更具可读性

public static class JavaDateTimeExtensions
{
    public static int JavaMonth(this DateTime input)
    {
        return input.Month - 1;
    }
}

关于android - MonthDisplayHelper.NumberOfDaysInMonth 在 MonoDroid 中返回不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14754025/

相关文章:

java - Struts2 中带有时区的 AppEngine java.util.Date

javascript - 在 JavaScript 中在给定日期时间执行代码的最佳方式

c# - 在 Linux 上使用 Mono 访问机器级配置

linux - Mono 3.2.3 需要更新版本的 glibc

c# - 有人知道任何支持 C# Mono 的嵌入式 Linux DIY 工具包吗?

android - 如何在 fragment onCreateView 中自定义 android 标题栏

java - Android - setRequestedOrientation - Activity 和 View 生命周期

android - 如何将系统服务添加到 Android Framework

android - 如何在Android应用程序中访问网络摄像头的实时流

java - 如何在 Java 中移动日历?