判断距离指定日期还有多少天
import java.util.*;
public class Datedate {
    public static void main(String args[]) {
        Date d1=new Date();
        int s1 = Integer.parseInt(args[0])-1900;
        int s2 = Integer.parseInt(args[1])-1;
        int s3 = Integer.parseInt(args[2]);
        Date d2=new Date(s1,s2,s3);
        System.out.println((d2.getTime() - d1.getTime()).toString());
    }
}
这样怎么错了?有点晕不太会看JDK文档

解决方案 »

  1.   


    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    public class Main {
    public static void main(String[] args) throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Scanner input = new Scanner(System.in);
    System.out.println("请输入截止日期:(YYYY-MM-DD)");
    String str = input.next();
    Date start = new Date();//开始日期
    Date end = sdf.parse(str);//截止日期

    long time = end.getTime() - start.getTime();//截止日期和开始日期的时间差,为long型的
    System.out.println(time / (24 * 60 * 60 * 1000));//24 * 60 * 60 * 1000 为一天的毫秒数
    }
    }
      

  2.   

    随手写了个呵呵
    package cn.siat;import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;public class ComputeDate { private static final long TIME_MILLIS = 1000 * 60 * 60 * 24;
    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); /**
     * 计算天数
     * @param fromDate起始日期
     * @param toDate 结束日期
     * @return 间隔天数
     */
    public static Long computeDayBetweenCanlendar(Date fromDate, Date toDate) { Calendar fromCalendar = Calendar.getInstance();
    Calendar toCalendar = Calendar.getInstance();
    fromCalendar.setTime(fromDate);
    toCalendar.setTime(toDate); return (toCalendar.getTimeInMillis() - fromCalendar.getTimeInMillis())
    / TIME_MILLIS;
    } public static void main(String[] args) throws ParseException { Date fromDate = null;
    Date toDate = null;
    try {
    fromDate = sdf.parse("2010-12-14");
    toDate = sdf.parse("2010-12-17");
    } catch (Exception e) {
    throw new IllegalArgumentException("参数非法!");
    } System.out.println(computeDayBetweenCanlendar(fromDate, toDate)); }}
      

  3.   

    不会看jdk的人,我只能说无语.
    你吃饭总不用筷子,还总让别人喂你吃啊.!!!!你这样个态度真不适合当程序员,一点求知的态度都没有,该 干嘛干嘛去吧
      

  4.   

     System.out.println((d2.getTime() - d1.getTime()).toString());
    的toString去掉,long型是基本类型
      

  5.   

    针对于楼主的需求!建议参考以下方法!
    Calendar cal = Calendar.getInstance();
    这个对象有一个得到指定日期距历元之间的毫秒数!
    楼主仔细想想我们一天时间的毫秒数是固定的,所以我们可以求出指定日期到历元的毫秒数和当前日期距历元的毫秒数,得到两个毫秒数之后当前日期的毫秒数减去指定日期的毫秒数然后再除以一天所拥有的毫秒数得到的商就是距离指定日期由多少天了!
      

  6.   

    public static void main(String[] args)
    {
    //你需要指定的第一个时间
    Calendar oldcal = Calendar.getInstance();
    //当前时间
    Calendar newcal = Calendar.getInstance();
    //设置时区
    TimeZone tz = TimeZone.getTimeZone("GMT");        
    oldcal.setTimeZone(tz); 
    newcal.setTimeZone(tz); 
    oldcal.clear(); 
    //设置你要指定的日期
    oldcal.set(1970, 0, 1);
    newcal.set(1970,0,8);
    float da=(newcal.getTimeInMillis()-oldcal.getTimeInMillis())/(24*60*60*1000);
    System.out.println("两个日期之间的差值为"+da+"天");
    }
    如此便可确保你的程序没有错误了!
      

  7.   


    对于一个刚学JAVA正在不断了解JAVA的人来说,你这话说的太不负责了~我就不信你一开始用JDK就NB到想要什么都能立刻在JDK文档找到相应的类~