我想和闰年什么的无关吧....试试这个....public Date getNewDate(Date oldDate,long min){
return new Date(oldDate.getTime()-min*60*1000);
}

解决方案 »

  1.   

    java.util.Date dteTmp = new java.util.Date ("2004/10/10 10:10:10");
    SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss");dteTmp.setTime(dteTmp.getTime() - 3600000); //减去1小时,是以毫秒为单位的
    System.out.println (fmtDte.format(dteTmp));
      

  2.   

    long minute=12345;
    Calendar time=new GregorianCalendar();
    time.set(...);//调用这个方法设置基准时间void set(int year, int month, int date, int hour, int minute, int second) 
    long timeMillis=time.getTimeInMillis();//获取时间;
    timeMillis-=minute*60;//得到计算之后的时间
    time.setTimeInMillis(original);
    Date result=time.getTime();//得到结果
      

  3.   

    public date differ(Date d,long n){
           Date dateNeed = d;
           dateNeed.setTime(d.getTime() - (n*60000)); 
           return dateNeed;
    }
     参数d是指定的日期,参数n是分钟数。
    返回需要的日期。
      

  4.   

    Calendar  这个类完全可以办到阿!! 不用你自己写啊! 你直接用就可以拉!用 void add(int field, int amount)   这个方法给你举个例子 add(1,Calendar.DAY_OF_MONTH)  这样 得到的时间就是明天拉;add(-任意分钟数,Calendar.MILLISECOND) 计算这个日期前任意分钟数的日期;给分!
      

  5.   

    http://blog.csdn.net/netcom19/archive/2004/12/08/209498.aspx
      

  6.   

    给你个思路吗,先将日期转换为毫秒数,然后将输入的分钟也转换为毫秒数,这两个long类型相加后就是想要得到的日期的毫秒数,然后再转换为Date就可以了
      

  7.   

    JAVA里面通过getTime(),可以得到一个日期距离January 1, 1970 00:00:00.000 的毫秒数
    你把相差的时间转换成毫秒,
    减一下,把结果再转换成日期就行了具体见jdoc
      

  8.   

    我用如下的语句:
                      java.util.Date dteTmp = new java.util.Date ("2004/05/01 10:10:10");
    SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss"); 
    int day= 2;
    System.out.println (dteTmp.getTime()); 
    dteTmp.setTime(dteTmp.getTime() - day*60*60*24*1000); 
    System.out.println (fmtDte.format(dteTmp)); 
                      //输出的结果是2004/10/29 10:10:10
                      //为何
      

  9.   

    我也用如下的语句:
                      Calendar nowTime = new GregorianCalendar();
    nowTime.set(2004,11,11,8,20,20);
      long timeMillis=nowTime.getTimeInMillis();
      System.out.println(timeMillis);
    timeMillis=timeMillis - 11*60*60*24*1000;
    nowTime.setTimeInMillis(timeMillis); 
    Date result=nowTime.getTime();
    SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss");
    System.out.println (fmtDte.format(result)); 
                      //输出的结果是2004/20/30 08:20:20
                      //又为何呀
                      //哪位能把一个完整的正确的程序给我呀,我送全部的分数,马上要交作业了,我搞不定呀
      

  10.   

    晕,,Calendar  类就直接有方法可以实现,,自己查查jdk文档
      

  11.   

    public static void main(String[] args) {
        int yy=2004;
        int mm=12;
        int dd=1;
        Calendar d=getMMM(yy,mm,dd,10000);
        System.out.println(d.get(Calendar.YEAR)
        +"-"+(d.get(Calendar.MONTH)+1)
        +"-"+d.get(Calendar.DATE));
        
        
        }
        public static Calendar getMMM(int yy,int mm,int dd,int mcount){
        Calendar  d=Calendar.getInstance();
        d.set(yy,mm-1,dd);
        d.setTimeInMillis(d.getTimeInMillis()+mcount*60000);
        return d;
          
        }
      

  12.   

    有点小失误set前要clear
        public static Calendar getMMM(int yy,int mm,int dd,int mcount){
    Calendar  d=Calendar.getInstance();
    d.clear();
    d.set(yy,mm-1,dd);
    d.setTimeInMillis(d.getTimeInMillis()+mcount*60000);
    return d;
        
        }
      

  13.   

    是simpleDateFormat的问题,算法没有问题,
    如果 你不用simpleDateFormat
    而直接
    System.out.println (dteTmp); 
    或者是下面的
    System.out.println (result); 
    输出的日期是没有问题的。。
    我也不明白为什么。
    有人可以回答么?
      

  14.   

    就你上一个程序而言、java.util.Date dteTmp = new java.util.Date ("2004/05/01 10:10:10");        System.out.println (dteTmp);//这里输出正确 SimpleDateFormat fmtDte = new SimpleDateFormat 
                                                ("yyyy/mm/dd hh:mm:ss"); 
    int day= 2; System.out.println (fmtDte.format(dteTmp)); //这里不正确 //System.out.println (dteTmp.getTime()); 
    dteTmp.setTime(dteTmp.getTime() - day*60*60*24*1000);
     System.out.println (dteTmp); //这里正确
            System.out.println (fmtDte.format(dteTmp));//这里不正确
      

  15.   

    SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss"); 
                                                          ^
                                                      这里要大写,小写代表分钟即
    SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/MM/dd hh:mm:ss");
      

  16.   

    用add方法更加正规些
        public static Calendar getMMM(int yy,int mm,int dd,int mcount){
    Calendar  d=Calendar.getInstance();
    d.clear();
    d.set(yy,mm-1,dd);
    d.add(Calendar.MINUTE,mcount);
    return d;
        }