「java计算年份差多少天」java计算两个日期天数

博主:adminadmin 2023-01-03 15:42:10 666

今天给各位分享java计算年份差多少天的知识,其中也会对java计算两个日期天数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中如何计算出两个日期之间相差多少天

思路就是根据它们相差的毫秒数除以每天的毫秒数(60*60*24*1000),代码如下:

public static void main(String[] args) throws ParseException {

String date1="1987-01-01";

String date2="2010-01-01";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");

Date d1=sdf.parse(date1);

Date d2=sdf.parse(date2);

long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);

System.out.println("1987-01-01 与 2010-01-01 相隔 "+daysBetween+" 天");

}

运行结果如下:

扩展资料:

Java使用以下三种方法来比较两个日期:

1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行

例如:

SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。

注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

以上实例编译运行结果如下:

当前时间为: 2018-09-14 10:16:34

参考资料:

Java官方API接口-Date

菜鸟教程-Java 日期时间

写了一个java程序来计算两个年份之间的总天数,得出的结果误差几天,不知道什么地方出问题了程序代码如下

你的Java程序中第二部分month的天数计算有问题month应该改成j

下面是完整的Java程序(改动的地方见注释)

import java.util.Scanner;

public class rilibiao {

 public static void main(String[] args){

  Scanner in=new Scanner(System.in);

  while(12){

   System.out.println("请输入年份:");

   int year=in.nextInt();

   System.out.println("请输入月份:");

   int month=in.nextInt();

   System.out.println("请输入日期:");

   int day=in.nextInt();

   int sum=0;

   for(int i=1900;iyear;i++){

    if(i%4==0i%100!=0||i%400==0){

     sum=sum+366;

    }else{

     sum=sum+365;

    }

   }

   for(int j=1;jmonth;j++){

    if(j==2){//这里month==2改成j==2

     if(year%4==0year%100!=0||year%400==0){

      sum=sum+29;

     }else{

      sum=sum+28;

     }

    }else if(j==4||j==6||j==9||j==11){//这里month==4改成j==4以此类推

     sum=sum+30;

    }else{

     sum=sum+31;

    }

   }

   sum=sum+day;

   sum=sum-1;//这里要减去1900年1月1日这一天

   System.out.println("从1900年一月一日到"+year+"年"+month+"月"+day+"日一共有"+sum+"天");

   System.out.println("程序继续请输入1,退出请输入2.");

   int on=in.nextInt();

   if(on==1){

    continue;

   }else{

    break;

   }

  }

 }

}

运行结果

请输入年份:

2016

请输入月份:

5

请输入日期:

7

从1900年一月一日到2016年5月7日一共有42495天

程序继续请输入1,退出请输入2.

2

Java比较两个时间相差多少天,多少个月,多少年

java比较两个时间相差,可以使用calender类的api,实例如下:

package com.test;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

/**

* @description 日期比较天 月 年

* @author

*/

public class DateTest {

public static void main(String[] args) {

String date = "2008-06-12";

DateTest.compareDate(date, null, 0);

DateTest.compareDate(date, null, 1);

DateTest.compareDate(date, null, 2);

date = "2006-06-03";

DateTest.compareDate(date, null, 0);

DateTest.compareDate(date, null, 1);

DateTest.compareDate(date, null, 2);

DateTest.compareDate(date, "2009-06-01", 0);

DateTest.compareDate(date, "2009-06-01", 1);

DateTest.compareDate(date, "2009-06-01", 2);

}

/**

* @param date1 需要比较的时间 不能为空(null),需要正确的日期格式

* @param date2 被比较的时间 为空(null)则为当前时间

* @param stype 返回值类型 0为多少天,1为多少个月,2为多少年

* @return

*/

public static int compareDate(String date1,String date2,int stype){

int n = 0;

String[] u = {"天","月","年"};

String formatStyle = stype==1?"yyyy-MM":"yyyy-MM-dd";

date2 = date2==null?DateTest.getCurrentDate():date2;

DateFormat df = new SimpleDateFormat(formatStyle);

Calendar c1 = Calendar.getInstance();

Calendar c2 = Calendar.getInstance();

try {

c1.setTime(df.parse(date1));

c2.setTime(df.parse(date2));

} catch (Exception e3) {

System.out.println("wrong occured");

}

//List list = new ArrayList();

while (!c1.after(c2)) { // 循环对比,直到相等,n 就是所要的结果

//list.add(df.format(c1.getTime())); // 这里可以把间隔的日期存到数组中 打印出来

n++;

if(stype==1){

c1.add(Calendar.MONTH, 1); // 比较月份,月份+1

}

else{

c1.add(Calendar.DATE, 1); // 比较天数,日期+1

}

}

n = n-1;

if(stype==2){

n = (int)n/365;

}

System.out.println(date1+" -- "+date2+" 相差多少"+u[stype]+":"+n);

return n;

}

/**

* 得到当前日期

* @return

*/

public static String getCurrentDate() {

Calendar c = Calendar.getInstance();

Date date = c.getTime();

SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");

return simple.format(date);

}

}

运行结果:

2008-06-12 -- 2009-06-09 相差多少天:362

2008-06-12 -- 2009-06-09 相差多少月:12

2008-06-12 -- 2009-06-09 相差多少年:0

2006-06-03 -- 2009-06-09 相差多少天:1102

2006-06-03 -- 2009-06-09 相差多少月:36

2006-06-03 -- 2009-06-09 相差多少年:3

2006-06-03 -- 2009-06-01 相差多少天:1094

2006-06-03 -- 2009-06-01 相差多少月:36

2006-06-03 -- 2009-06-01 相差多少年:2

可以参考上面的程序,如果还有什么不明白的,可以自己去ITjob网上看看,有介绍Java这方面的知识。

用java计算出两个日期之间相差多少天

java可以使用计算日期的天数差,以下是详细代码:

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class test16 {

/**

* @param args

* @throws ParseException

*/

public static void main(String[] args) throws ParseException {

// TODO Auto-generated method stub

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d1=sdf.parse("2012-09-08 10:10:10");

Date d2=sdf.parse("2012-09-15 00:00:00");

System.out.println(daysBetween(d1,d2));

System.out.println(daysBetween("2012-09-08 10:10:10","2012-09-15 00:00:00"));

}

/**

* 计算两个日期之间相差的天数

* @param smdate 较小的时间

* @param bdate 较大的时间

* @return 相差天数

* @throws ParseException

*/

public static int daysBetween(Date smdate,Date bdate) throws ParseException

{

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

smdate=sdf.parse(sdf.format(smdate));

bdate=sdf.parse(sdf.format(bdate));

Calendar cal = Calendar.getInstance();

cal.setTime(smdate);

long time1 = cal.getTimeInMillis();

cal.setTime(bdate);

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

/**

*字符串的日期格式的计算

*/

public static int daysBetween(String smdate,String bdate) throws ParseException{

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();

cal.setTime(sdf.parse(smdate));

long time1 = cal.getTimeInMillis();

cal.setTime(sdf.parse(bdate));

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

}

如何用java程序计算输入的年份和某个年份相差多少天

int begin=开始的年份

int end=结束的年份

int day=0; 总天数

for(;beginend;begin++){

if(begin是平年)

day=day+365;

else day=day+366;

}

System.out.println(day);

java怎么计算两个日期相差几天

java可以使用计算日期的天数差,以下是详细代码:

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class test16 {

/**

* @param args

* @throws ParseException

*/

public static void main(String[] args) throws ParseException {

// TODO Auto-generated method stub

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d1=sdf.parse("2012-09-08 10:10:10");

Date d2=sdf.parse("2012-09-15 00:00:00");

System.out.println(daysBetween(d1,d2));

System.out.println(daysBetween("2012-09-08 10:10:10","2012-09-15 00:00:00"));

}

/**

* 计算两个日期之间相差的天数

* @param smdate 较小的时间

* @param bdate 较大的时间

* @return 相差天数

* @throws ParseException

*/

public static int daysBetween(Date smdate,Date bdate) throws ParseException

{

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

smdate=sdf.parse(sdf.format(smdate));

bdate=sdf.parse(sdf.format(bdate));

Calendar cal = Calendar.getInstance();

cal.setTime(smdate);

long time1 = cal.getTimeInMillis();

cal.setTime(bdate);

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

/**

*字符串的日期格式的计算

*/

public static int daysBetween(String smdate,String bdate) throws ParseException{

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();

cal.setTime(sdf.parse(smdate));

long time1 = cal.getTimeInMillis();

cal.setTime(sdf.parse(bdate));

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

}

java计算年份差多少天的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java计算两个日期天数、java计算年份差多少天的信息别忘了在本站进行查找喔。