Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android日历没有给出预期的结果_Java_Android_Calendar - Fatal编程技术网

Java Android日历没有给出预期的结果

Java Android日历没有给出预期的结果,java,android,calendar,Java,Android,Calendar,我正在将值传递给calendar实例,但不知道它为什么不能按预期执行。我想给一个特定的日期加上一天,然后使用这个日期 Log.v("data going to calendar==", "year="+Integer.parseInt(fy)+ "month="+Integer.parseInt(fm)-1)+ "day="+Integer.parseInt(fd)+ "hh="+Integer.parseInt(fh)+ "mm="+Integer.parseInt(fmn

我正在将值传递给calendar实例,但不知道它为什么不能按预期执行。我想给一个特定的日期加上一天,然后使用这个日期

Log.v("data going to calendar==",
  "year="+Integer.parseInt(fy)+
  "month="+Integer.parseInt(fm)-1)+
  "day="+Integer.parseInt(fd)+
  "hh="+Integer.parseInt(fh)+
  "mm="+Integer.parseInt(fmn));

c.set(
  Integer.parseInt(fd),
  Integer.parseInt(fm)-1,
  Integer.parseInt(fy),
  Integer.parseInt(fh),
  Integer.parseInt(fmn));

c.add(Calendar.DAY_OF_MONTH,1);

Log.v("data coming from calendar==", 
   "year = " + c.get(Calendar.YEAR)+
   "month ="+ c.get(Calendar.MONTH)+
   "day ="+c.get(Calendar.DATE)+
   "hh="+c.get(Calendar.HOUR)+
   "mm="+c.get(Calendar.MINUTE));
输出为: 日历数据gng==年=2013月=7日=29hh=12mm=0

日历数据cmng==年=35个月=1天=4小时=0毫米=0

我通过在代码上添加一天的注释来运行该代码,但结果除了一天之外都是一样的,这意味着添加一天是完美的--->
年=35个月=1天=3小时=0毫米=0

如果要在日期中添加一天(24小时),请将其添加为毫秒:1天=24*60*60*1000毫秒

Calendar c = Calendar.getInstance();
//Set calendar's fields here
long time = c.getTimeInMilliseconds();
long nextDay = time + 24 * 60 * 60 * 1000;
c.setTimeInMillis(nextDay);
使用错误的参数调用
set()
方法。根据规则,顺序必须是
日期
,作为前三个参数,您可以使用
日期
作为第一个参数来调用它

如果您将代码更改为

c.set(Integer.parseInt(fy),
    Integer.parseInt(fm)-1,
    Integer.parseInt(fd),
    Integer.parseInt(fh),
    Integer.parseInt(fmn));
它应该按预期工作


奇怪的值是因为它将
2013
视为大约6年的一天添加到日期上。

您得到的输出是什么?你能显示日志输出吗?编辑它并显示输出后,实际上并不是添加一天导致了任何问题,在你回答之后,我通过在代码上添加注释来运行代码以添加一天,但是结果仍然相同,除了天之外,这意味着添加一天工作正常---->year=35month=1day=3hh=0mm=0