代码改变世界

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

  大额_skylar  阅读(1324)  评论(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);
        }
    }
}
复制代码

 

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示