精华内容
下载资源
问答
  • 之间相差多少天?? 在java中如何算。。。。。。??? java可以使用计算日期的天数,以下是详细代码: import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calend....

    如果我date1="1987-01-01"

    date2="2010-01-01"

    之间相差多少天??

    在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
    
    {
    
        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对日期Date类进行加减运算、年份加减月份加减、时间差等等

    java对日期Date类进行加减运算、年份加减,月份加减

    一、Java计算时间差及比较时间大小(时间点)

    比如:现在是2004-03-26 13:31:40

    过去是:2004-01-02 11:30:24

    我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

    SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
    
    java.util.Date end = dfs.parse("2004-03-26 13:31:40");
    
    long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒
    
    long day1=between/(24*3600);
    
    long hour1=between%(24*3600)/3600;
    
    long minute1=between%3600/60;
    
    long second1=between%60/60;
    
    System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");

    joda dateTime简单用法

    Java精确计算小数

    java_时间戳与Date_相互转化

    1、时间戳的定义

      时间戳是指文件属性里的创建、修改、访问时间。 

    数字时间戳技术是数字签名技术一种变种的应用。在电子商务交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。数字时间戳服务(DTS:digital time stamp service)是网上电子商务安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。

    编辑本段组成部分

      时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括三个部分:  

      (1)需加时间戳的文件的摘要(digest);  

      (2)DTS收到文件的日期和时间;  

      (3)DTS的数字签名。  

      一般来说,时间戳产生的过程为:用户首先将需要加时间戳的文件用Hash编码加密形成摘要,然后将该摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。  

      书面签署文件的时间是由签署人自己写上的,而数字时间戳则不然,它是由认证单位DTS来加的,以DTS收到文件的时间为依据。

     

    2、时间戳转化为Date(or String)

    //时间戳转化为Sting或Date
    
    SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    Long time=newLong(445555555);
    
    String d = format.format(time);
    
    Date date=format.parse(d);
    
    System.out.println("Format To String(Date):"+d);
    
    System.out.println("Format To Date:"+date);
    
     运行结果:
    
           Format To String(Date):1970-01-06 11:45:55
    
    Format To Date:Tue Jan 06 11:45:55 CST 1970

    3、Date(or String)转化为时间戳】

    //Date或者String转化为时间戳
    
    SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    String time="1970-01-06 11:45:55";
    
    Date date = format.parse(time);
    
    System.out.print("Format To times:"+date.getTime());
    
    
    
    运行结果:
    
         Format To times:445555000

    4、注意

      定义SimpleDateFormat时newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");里面字符串头尾不能有空格,有空格那使用转换时对应的时间格式也要有空格(两者是对应的),比如:

    //Date或者String转化为时间戳
    
    SimpleDateFormat format = newSimpleDateFormat(" yyyy-MM-dd HH:mm:ss ");
    
    String time="1970-01-06 11:45:55";
    
    Date date = format.parse(time);
    
    System.out.print("Format To times:"+date.getTime());
    
    
    
    运行结果(报错):
    
    Exception in thread "main"java.text.ParseException: Unparseable date: "1970-01-06 11:45:55"
    
    改正:
    
      //Date或者String转化为时间戳
    
    SimpleDateFormat format = newSimpleDateFormat(" yyyy-MM-dd HH:mm:ss ");
    
    String time=" 1970-01-06 11:45:55 ";//注:改正后这里前后也加了空格
    
    Date date = format.parse(time);
    
    System.out.print("Format To times:"+date.getTime());
    
    
    
    
    
      运行结果:
    
        Format To times:445555000

    一、java中Date类中的getTime()是获取时间戳的,java中生成的时间戳精确到毫秒级别,而unix中精确到秒级别,所以通过java生成的时间戳需要除以1000。

    二、下面是java代码

    import java.text.ParseException;
    
    import java.text.SimpleDateFormat;
    
    import java.util.Date;
    
    
    
    public class Baidu {
    
    
    
    /**
    
    * @param args
    
    */
    
    public static void main(String[] args) {
    
        try {
    
            String time = "2011/07/29 14:50:11";
    
            Date date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(time);
    
            long unixTimestamp = date.getTime()/1000;
    
            System.out.println(unixTimestamp);
    
        } catch (ParseException e) {
    
        e.printStackTrace();
    
        }
    
    }
    
    }

    JAVA日期加 减运算

    java中Date与String的相互转化

    java中Calendar.getInstance()和new Date()的差别是什么?

    java中Calendar.getInstance()和new Date()的差别如下:

     

    Calendar.getInstance()是获取一个Calendar对象并可以进行时间的计算,时区的指定

    new Date()是创建了一个date对象,默认是utc格式的。

    二者可以相互转化:

    Calendar calendar = Calendar.getInstance();
    
    // 从一个 Calendar 对象中获取 Date 对象
    
    Date date = calendar.getTime();
    
    // 将 Date 对象反应到一个 Calendar 对象中,
    
    // Calendar/GregorianCalendar 没有构造函数可以接受 Date 对象
    
    // 所以我们必需先获得一个实例,然后设置 Date 对象
    
    calendar.setTime(date);

     

    展开全文
  • 完美世界编程题,计算两个日期之间经过了多少个零点和多少个星期四。 package wanmeishijie170926; /* *输入 2017/9/7 0:0:0 2017/9/21 0:0:0 输出 13,1 * */ import java.util.Scanner; public class ...


    完美世界编程题,计算两个日期之间经过了多少个零点和多少个星期四。


    package wanmeishijie170926;
    /*
     *输入
    2017/9/7 0:0:0
    2017/9/21 0:0:0
    输出 13,1
     * 
     */
    import java.util.Scanner;
    
    public class Test1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner sc=new Scanner(System.in);
    		String[] str1=sc.nextLine().split(" ");
    		String[] str2=sc.nextLine().split(" ");
    		String sDate[]=str1[0].split("/");
    		String eDdate[]=str2[0].split("/");
    		String sTime[]=str1[1].split(":");
    		String eTime[]=str2[1].split(":");
    		
    		int sYear=Integer.valueOf(sDate[0]);
    		int sMon=Integer.valueOf(sDate[1]);
    		int sDay=Integer.valueOf(sDate[2]);
    		int sHour=Integer.valueOf(sTime[0]);
    		int sMinu=Integer.valueOf(sTime[1]);
    		int sSec=Integer.valueOf(sTime[2]);
    		int eYear=Integer.valueOf(eDdate[0]);
    		int eMon=Integer.valueOf(eDdate[1]);
    		int eDay=Integer.valueOf(eDdate[2]);
    		int eHour=Integer.valueOf(eTime[0]);
    		int eMinu=Integer.valueOf(eTime[1]);
    		int eSec=Integer.valueOf(eTime[2]);
    		
    		int day_diff=day_diff(sYear,sMon,sDay,eYear,eMon,eDay);
    		int week_diff=week(sYear,sMon,sDay);
    		if(day_diff>0 && eSec>0)
    			System.out.print(day_diff+",");
    		else if(day_diff==0)
    			System.out.print(0+",");
    		else if(day_diff>0 && eSec==0){
    			System.out.print(day_diff-1+",");
    			day_diff-=1;
    		}
    		if(4-week_diff>0 &&day_diff-(4-week_diff)>=0)
    			System.out.print(1);
    		else
    			System.out.print(day_diff/7);
    
    	}
    
    	public static int week(int y,int m,int d){  //计算当前日期是星期几
    	   int a=7; // 用来保存计算得到的星期几的整数  
    	   int str_date=0;  
    	   if((m==1)||(m==2))//如果是一月或二月进行换算  
    	   {  
    		   m+=12;  
    		   y--;  
    	   }  
    	   a=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;   //得到的星期几的整数  
    	   switch (a){    
    	    case 0:  
    	     str_date=1;  
    	     break;  
    	    case 1:  
    	     str_date=2;  
    	     break;  
    	    case 2:  
    	     str_date=3;  
    	     break;  
    	    case 3:  
    	     str_date=4;  
    	     break;  
    	    case 4:  
    	     str_date=5;  
    	     break;  
    	    case 5:  
    	     str_date=6;  
    	     break;  
    	    case 6:  
    	     str_date=7;  
    	     break;  
    	   }  
    	   return str_date;     
    	}
    	public static int day_diff(int year_start, int month_start, int day_start, int year_end, int month_end, int day_end){//计算两个日期差多少天
    		 int y2, m2, d2;
    		 int y1, m1, d1;
    		 
    		 m1 = (month_start + 9) % 12;
    		 y1 = year_start - m1/10;
    		 d1 = 365*y1 + y1/4 - y1/100 + y1/400 + (m1*306 + 5)/10 + (day_start - 1);
    
    		 m2 = (month_end + 9) % 12;
    		 y2 = year_end - m2/10;
    		 d2 = 365*y2 + y2/4 - y2/100 + y2/400 + (m2*306 + 5)/10 + (day_end - 1);
    		 
    		 return (d2 - d1);
    	}
    }
    



    展开全文
  • Java8 计算两个日期之间相差多少天

    千次阅读 2019-12-30 14:39:18
    在使用Java8 新特性中关于Period.between的方法时需注意该方法获取日期的区间问题。 @Test public void test1(){ LocalDate from = LocalDate.of(2018,10,1); System.out.println(Period.between(from,LocalDate...

    在使用Java8 新特性中关于Period.between的方法时需注意该方法获取日期的区间问题。

    @Test
    public void test1(){
        LocalDate from = LocalDate.of(2018,10,1);
        System.out.println(Period.between(from,LocalDate.now()).getDays());
    }

    首先,猜测一下上面的代码返回的天数是多少?15天,你猜对了吗?

    如果不理解为什么是15天,那么咱们再打印一下其他的心气,你可能就明白了。

    @Test
    public void test1(){
        LocalDate from = LocalDate.of(2017,9,1);
        Period period = Period.between(from,LocalDate.now());
    
        System.out.println("2017-09-01到当前日期" + LocalDate.now());
        System.out.println("距离当前多少年:" + period.getYears());
        System.out.println("距离当前多少月:" + period.getMonths());
        System.out.println("距离当前多少日:" + period.getDays());
    }

    在此执行程序,打印日志如下:

    2017-09-01到当前日期2019-10-16
    距离当前多少年:2
    距离当前多少月:1
    距离当前多少日:15

    看了下面的日志信息,明白是怎么回事了吧。Period中时间区间如果是2年1个月15天。那么通过getDays()方法获得就是第三个存储15天。而不是2年1个月15天总共有多少天。

    那么如果想算两个日期直接的距离该怎么办呢?可采用下面的方法。

    如果你想要逻辑日历的天数,请使用以下DAYS.between()方法java.time.temporal.ChronoUnit

    LocalDate dateBefore;
    LocalDate dateAfter;
    long daysBetween = DAYS.between(dateBefore, dateAfter);
    

    如果你想要24个小时的日期,(持续时间),你可以使用Duration类:

    LocalDate today = LocalDate.now()
    LocalDate yesterday = today.minusDays(1);
    // Duration oneDay = Duration.between(today, yesterday); // throws an exception
    Duration.between(today.atStartOfDay(), yesterday.atStartOfDay()).toDays() // another option

    或者:

    @Test
    public void test2() {
        LocalDate from = LocalDate.of(2017, 9, 1);
        long day = LocalDate.now().toEpochDay() - from.toEpochDay();
        System.out.println("距离当前多少日:" + day);
    }

    执行结果为:

    距离当前多少日:775
    展开全文
  • 问题描述:如2019-12-27与2017-11-7,相差780天。.../*计算两个日期之间相差多少天*/ struct date { int years; int months; int days; }; int days_on_month[13] = { 0,31,28,31,30,31,30,31,3...

    问题描述:如2010-03-20与2020-03-20,相差3653天。
    方法描述:分别计算两个时间点距离0000-00-00时的天数,然后取差值
    编译环境:vc++6.0
    代码:

    #include <stdio.h>
    #include <math.h>
    #define leapYear(y)  ((y%4==0)&&(y%100!=0)||(y%400==0))    //宏定义,判断是否是闰年
    
    /*计算两个日期之间相差多少天*/
    struct date
    {
    	int years;
    	int months;
    	int days;
    };
    
    int days_on_month[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; //分别对应1到12月的天数,a[0]空着
    
    
    int days_date(struct date s)				//以0000-00-00时为基准,计算过去了多少天
    {
    	int sum=0;								//统计天数
    	for (int i = 0; i < s.years; i++)      //年份
    	{
    		if (leapYear(i))				//判断是否是闰年
    			sum += 366;
    		else sum += 365;
    	}
    
    	if (leapYear(i))
    		days_on_month[2]=29;                //闰年二月为29天
    	else
    		days_on_month[2]=28;                 //这步不可以省略
    	for (int k = 1; k < s.months; k++)		 //月份
    		sum += days_on_month[k];
    
    	return sum+s.days;						 //加上天数 返回
    }
    
    int diff(struct date s1, struct date s2)      //计算两个时间段,天数差函数
    {
    	return abs(days_date(s1)-days_date(s2));
    }
    
    
    int main()
    {
    	struct date s1, s2;
    	printf("输入日期1(yyyy-mm-dd):\n");
    	scanf("%d-%d-%d", &s1.years, &s1.months, &s1.days);
    	printf("输入日期2(yyyy-mm-dd):\n");
    	scanf("%d-%d-%d", &s2.years, &s2.months, &s2.days);
    	printf("相差%d天\n", diff( s1,  s2));
    	return 0;
    }
    
    

    测试案例:
    在这里插入图片描述

    展开全文
  • java中计算两个日期之间相差多少天

    万次阅读 2017-12-08 16:21:19
    java日期
  • Swift 计算两个日期的相隔多少天

    千次阅读 2018-09-04 16:34:33
    给定两个日期,计算两个日期相隔多少天。 列子 主要利用dateComponents实现 NSCalendar.current.dateComponents(components:Set&lt;Calendar.Component&gt;, from: &lt;Date&gt;, to: &lt;...
  • //(2)输入两个日期(年月日,年月日), 输出这两个日期之间差多少天。 //两问重复,此处写第二问。 #include<cstdio> //判断是否是闰年 int isLeap(int year){ if(year%4==0&&year%100==0||year%...
  • 由于最近项目需求,需要计算时间的柱壮图进度,通过开始时间,当前时间,完成时间来求取时间进度。 思路:通过获取开始时间天数,然后获取完成时间天数和当前时间天数(iOS时间是从1970年还是计数的) 与之相减,然后...
  • 输入:2018 4 22 2017 5 9 ...注意两个时间先后没有要求 早的时间或者晚的时间在前都可以 思路:按年份是否相同两种情况考虑  代码如下: #include&lt;iostream&gt; #include&lt;...
  • Oracle 计算两个日期之间的时间
  • java 计算两个日期中间有多少天

    千次阅读 2019-05-14 15:01:26
    //计算天数 public int daysBetween(Date now, Date returnDate) { Calendar cNow = Calendar.getInstance(); Calendar cReturnDate = Calendar.getInstance(); cNow.setTime(now); ...
  • python_计算两个日期之间的时间

    千次阅读 2019-12-29 22:06:16
    python_计算两个日期之间的时间 # 计算两个日期之间的时间 import pandas as pd ​ # dataframe = pd.DataFrame() ​ # 创建两个 datetime 特征 dataframe['Arrived'] = [pd.Timestamp('01-01-2017'), pd....
  • 用循环计算两个日期之间多少工作日,link怎么实现?用takewhile怎么代替while?
  • formatPeriod方法用于计算两个时间之间的片断,然后转化成相应的日期字符串类型,即能表示的最大单位 ...计算两个日期之间相差的天数 Date date1 = new Date(); date1 = DateUtils.addDays(date1, -12); ...
  • SQL---计算两个日期之间的时间

    万次阅读 2017-11-29 09:29:38
    在进行日期处理的时候,有时会需要计算一下两个日期之间相差几年零几个月,这里记录一下,如何用mysql数据库和java结合,准确的拿到两个日期之间的时间。1.mysql数据库中,利用TIMESTAMPDIFF函数,拿到两个日期...
  • // JS日期系列:根据出传入的日期 ,得到当前日期与传入日期,返回的格式是“y年m月” // 传入参数strKeyDate要求格式为“yyyy年mm月dd日”这样的日期字符串,如果不是自行先转换,或者调整下方“传入的日期,...
  • JS两个日期之间计算时间

    万次阅读 2019-03-06 19:48:40
    一、计算两个日期之间相差的毫秒数(也就是两个日期的时间戳) 这里有几种常见的JS方式,来获得日期的毫秒数。 1.日期对象的 getTime();方法 &amp;lt;script&amp;gt; var date = new Date(); //新建一...
  • 计算两个日期之间间隔多少天 使用Period来获取间隔 运行结果: 看起来是正确的,但是如果两个日期之间相差超过一个月,就不是我想要的结果了,看下面。 这个结果有点尴尬。。。如果没调用getMonths()方法,...
  • Flutter 计算两个日期的时间

    万次阅读 2020-12-30 20:15:40
    Flutter 计算两个日期的时间 我们在开发中,如果遇到计算2个日期相差多少天,用什么方法获得呢?如果需要知道两个日期相差多少小时、多少分、多少秒,又该如何计算呢? 其实在 Flutter 中,想要计算日期和时间的...
  • JS计算两个日期时间 小时 分 秒格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
  • Python:计算两个日期之间的天数

    千次阅读 2017-10-13 18:18:06
    Python:计算两个日期之间的天数这次用python编写了计算两个日志之间的天数的代码,编写的思路是在编写中逐步产生的,过程比较流畅。有几点细节需要点出来: 1. 是否为闰年,2月的天数 能被4整除但不能被100整除,...
  • 以下代码是计算两个日期之间的天数,并打印所有日期 注:开始时,增加天数时,一的毫秒数直接用24*60*60*1000来逐步增加天数,再测试时发现,当两个日期之间的天数超过24时,打印的日期反而在开始日期之前了,...
  • Calendar类计算两个日期相差多少天

    千次阅读 2018-06-28 18:05:17
    Calendar类计算两个日期相差多少天
  • 因为自己初学,代码有很多地方待优化! 欢迎大家指点! #include<stdio.h> /*计算当年的月份天数*/ int sum_day(int month,int day.../*计算两个年份之间的天数*/ int interval_year_day(int year, int yea...
  • 两个准备知识点: 1,首先把字符串格式的日期解析成日期类型,用mid方法 : mid(text,start_num,num_chars) 可以从字符串中取出子字符串,这里start_num是开始位置(最小值为1,不是0),num_chars是取出多少个字符串 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 197,125
精华内容 78,850
关键字:

计算两个日期之间差多少天