当前位置:  开发笔记 > 编程语言 > 正文

为什么减法超过30天导致错误答案

如何解决《为什么减法超过30天导致错误答案》经验,为你挑选了1个好方法。

如果我尝试减去1到29天,则返回日期是正确的,但如果我尝试减去超过30天,则返回日期是错误的.谁能解释我哪里出错?

public class MapTesting {
    public static void main(String[] args) {
        Date dNow = new Date( );
        SimpleDateFormat ft = new SimpleDateFormat ("yyyy-dd-MM");

        try {
            Date date = ft.parse("2011-01-10");
            Date su=new Date(date.getTime()-30*24*3600*1000);
            System.out.println(su);
            System.out.println(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }

antonu17.. 8

int常量溢出:30*24*3600*1000.

尝试将整数投入: Date su=new Date(date.getTime() - 30 * 24 * 3600 * 1000L);



1> antonu17..:

int常量溢出:30*24*3600*1000.

尝试将整数投入: Date su=new Date(date.getTime() - 30 * 24 * 3600 * 1000L);


我发现如果使用大写L而不是小写,则更容易区分.很容易将"30l"误认为"301",而不是"30L".
推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有