代码改变世界

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

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

 

编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· Java轻量级代码工程
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
点击右上角即可分享
微信分享提示