热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Android中添加月+1到日历月的日历问题。-CalendarissueinAddingmonth+1totocalendarmonthinAndroid

Iamusingthefollowingcode我正在使用以下代码CalendarcalCalendar.getInstance();System.out.println(

I am using the following code

我正在使用以下代码

Calendar cal = Calendar.getInstance();
System.out.println("Before "+cal.getTime());
cal.set(Calendar.MONTH, 01);
System.out.println("After "+cal.getTime());

the output is

输出是

Before Thu Jan 31 10:07:34 IST 2013
After Sun Mar 03 10:07:34 IST 2013

for adding +1 to jan is giving mar month. may be it returning correct output if we add 30 days to present date. but i want to show feb month. can any body help me please..

1加1等于3月。如果我们在现在的日期前增加30天,它可能会返回正确的输出。但是我想在二月里展示。有谁能帮帮我吗

4 个解决方案

#1


45  

you can see the +1 to set field is adding 30 days date different to your dates(observed from your output.)

您可以看到+1设置字段,添加30天的日期与您的日期不同(从您的输出中观察)。

if you want months then use the code

如果你想要几个月,那就使用代码

Calendar cal = Calendar.getInstance();
System.out.println("Before "+cal.getTime());  //Before Thu Jan 31 10:16:23 IST 2013

cal.add(Calendar.MONTH, 1);
System.out.println("After "+cal.getTime()); //After Thu Feb 28 10:16:23 IST 2013

#2


7  

You have to use add() like,

你必须使用add() like,

cal.add(Calendar.MONTH, 1);

OUTPUT ->

输出- >

Before Thu Jan 31 10:15:04 IST 2013
After Thu Feb 28 10:15:04 IST 2013

#3


2  

cal.set(Calendar.MONTH, cal.get( Calendar.MONTH ) + 1 );

The reason it shows Mar 3 anyway, is because it apparently adds 30 days, which is Feb 31st which does not exist, so it goes to Mar 3.

它显示3月3日的原因,是因为它显然增加了30天,也就是2月31日不存在,所以是3月3日。

If you wanted the last day of the next month instead, you would do something like this:

如果你想要在下个月的最后一天,你可以这样做:

int mOnth= cal.get( Calendar.MONTH );
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);
if( cal.get( month ) > month + 1 ) {
    cal.set( Calendar.MONTH, month + 1 );
    cal.set( Calendar.DAY, /* here comes your day amount finding algorithm */ );
}

#4


1  

This kind of date-time work is easier using either:

这种约会时间的工作更容易使用:

  • Joda-Time 2.3 library
    • Popular replacement for the java.util.Date & .Calendar classes bundled with Java
    • 常用的java.util替换。与Java绑定的日期和.Calendar类
    • Open source
    • 开源
    • Free of cost
    • 免费的
    • Actively maintained (as of 2014-02)
    • 积极维护(2014-02)
  • Joda-Time 2.3库是java.util的流行替代品。日期和.Calendar类与Java开放源码捆绑在一起,无需积极维护(从2014-02年起)
  • java.time package
    • New in Java 8
    • 新的Java 8
    • Inspired by Joda-Time, but re-architected
    • 受到Joda-Time的启发,但重新架构
    • Defined by JSR 310
    • JSR 310定义的
    • Tutorial available
    • 教程中可用
  • java。Java 8中的时间包受到Joda-Time的启发,但是重新架构了JSR 310教程的定义
Example Code
DateTimeZone timeZOne= DateTimeZone.forID( "Europe/Paris" ); // Or, DateTimeZone.UTC
DateTime dateTime = new DateTime( timeZone );
DateTime mOnthAgo= dateTime.plusMonths( -1 ); // Smartly handles various month lengths, leap year, and so on.
DateTime mOnthLater= dateTime.plusMonths( 1 );

Dump to console…

转储控制台……

System.out.println( "dateTime: " + dateTime );
System.out.println( "monthAgo: " + monthAgo );
System.out.println( "monthAgo start of day: " + monthAgo.withTimeAtStartOfDay() );
System.out.println( "monthLater: " + monthLater );

When run…

运行时……

dateTime: 2014-02-24T01:53:22.386+01:00
monthAgo: 2014-01-24T01:53:22.386+01:00
monthAgo start of day: 2014-01-24T00:00:00.000+01:00
monthLater: 2014-03-24T01:53:22.386+01:00

推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 标题: ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 面向对象之3:封装的总结及实现方法
    本文总结了面向对象中封装的概念和好处,以及在Java中如何实现封装。封装是将过程和数据用一个外壳隐藏起来,只能通过提供的接口进行访问。适当的封装可以提高程序的理解性和维护性,增强程序的安全性。在Java中,封装可以通过将属性私有化并使用权限修饰符来实现,同时可以通过方法来访问属性并加入限制条件。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
author-avatar
可卡因
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有