代码改变世界

java输出任意两个日期之间有多少天

2014-04-15 15:07  大额_skylar  阅读(1308)  评论(0编辑  收藏  举报

 

package JingDian;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class howmanyDays {
    public static void main(String[] args){
        String d1 = "2013-06-12";
        String d2 = "2013-04-08";
        dateDays howmany = new dateDays();
        howmany.calculate(d1, d2);
    
    }

}

class dateDays{
    String dateFormat = "yyyy-MM-dd";
    SimpleDateFormat format= new SimpleDateFormat(dateFormat);
    //TrueDate方法用于把输入的String类型的日期转化为Date型(即转化为日期格式)
    public Date TrueDate(String str){
        if(str == null)
            return null;
        try
        {
            //SimpleDateFormat类中的parse()方法解析字符串的文本,生成 Date。format() 将给定的 Date格式化为字符串
            return format.parse(str);
        }catch(ParseException e)
        {
            e.printStackTrace();
        }
        return null;
    }
    public void calculate(String date1,String date2){
        if(date1.equals(date2))
        {
           System.out.println("两个日期相等");
           return;
        }
        if(date1.compareTo(date2)>0)
        { 
            //确保data2中存放的是较大的那个日期
            String tmp;
            tmp = date1;
            date1 = date2;
            date2 = tmp;
            //转化为Date
            Date Ddate1 = TrueDate(date1);
            Date Ddate2 = TrueDate(date2);
            //Date类中的getTime()方法返回long型整数,即从GMT1970-01-01 00:00:00到该Date对象之间的时间差,毫秒为单位
            int t = (int) ((Ddate2.getTime()-Ddate1.getTime())/1000/60/60/24);
            System.out.println(t);
        }
    }
}