经典 求 两个 日期间的间隔。。。

转载 2012年03月22日 17:04:33

注明:如果想要看两日期间隔天数,则直接跳到"";前面为预备知识;


一、需要使用的类


(1)java.util.Date;

(2)java.util.Calendar;

(3)java.util.GregorianCalendar;

(4)java.text.SimpleDateFormat;


二、Date的用途


Date由于基本已经过时,现在所能使用的地方有几点:

(1)获得当前时间:Date date = new Date();

(2)Date和Calendar转换;  (后面会讲)

(3)SimpleDateFormat的解析;(后面会讲)


三、Calendar和GregorianCalendar用法


Calendar被广泛使用是因为他能够很容易的取得所需要的属性,比如年、月、日、分、秒、毫秒、星期等;

常见用法:

(1)GregorianCalendar calendar = new GregorianCalendar();     获得当前时间;

(2)calendar.setTime(Date date);   //将date的时间设置到calendar中;

(3)Date calendar.getTime();      //将calendar转成Date类型;

(4)calendar.get(属性);    //根据名称获得属性的值;

(5)calendar.getTimeInMillis();    //获得calendar时间的毫秒数;  (是求两日期相差天数的关键)



四、SimpleDateFormat


SimpleDateFormat被广泛使用是因为他能够自定义日期显示的格式;

(1)y表示年;      yyyy表示四位的年份,比如2011

(2)M表示月;     MM表示两位的月份,比如11

(3)d表示天;     dd表示两位的天数 ,比如11

常见用法:

(1)SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    //设置日期显示格式为yyyy-MM-dd,比如2011-01-01

(2)Date date = sdf.parse(String str);     //将字符串解析为Date类型的日期;比如"2011-01-01"解析成2011-01-01的日期;

(3)String str = sdf.format(Date date);    //将日期格式化为字符串;


五、求两日期间隔天数


技巧:通过间隔毫秒数求出间隔的天数;
如果知道了间隔的毫秒数,则:
(1) long sec = milli/1000;
(2) long min = sec/60;
(3) long hour = min./60;
(4) long day = hour/24;
  1. package org.exam3;  
  2.   
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Date;  
  5. import java.util.GregorianCalendar;  
  6. import java.util.Scanner;  
  7.   
  8. public class Test {  
  9.   
  10.     public static void main(String[] args)throws Exception{  
  11.         Scanner in = new Scanner(System.in);  
  12.         in.useDelimiter("\n");  
  13.         System.out.print("开始时间:");  
  14.         String str1 = in.next();  
  15.         System.out.println("\n结束时间:");  
  16.         String str2 = in.next();  
  17.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
  18.         Date date1 = sdf.parse(str1);  
  19.         Date date2 = sdf.parse(str2);  
  20.         GregorianCalendar cal1 = new GregorianCalendar();  
  21.         GregorianCalendar cal2 = new GregorianCalendar();  
  22.         cal1.setTime(date1);  
  23.         cal2.setTime(date2);  
  24.         <strong>long gap = (cal2.getTimeInMillis()-cal1.getTimeInMillis())/(1000*3600*24);//从间隔毫秒变成间隔天数</strong>  
  25.         System.out.println("\n相差"+gap+"天");  
  26.     }  
  27.   


useDelimiter

public Scanner useDelimiter(Pattern pattern)
将此扫描器的分隔模式设置为指定模式。
参数:
pattern - 分隔模式
返回:
此扫描器


经典算法:计算两个日期之间的天数

如题所示,这个算法就是写起来麻烦一点,不过还是很简单的,思路清晰就非常好做思路:用两套数组分别存储每个月的天数,分别是闰年和非闰年,分别为num1[] 和 num2[]; **然后就...
  • qq_23100787
  • qq_23100787
  • 2015年09月05日 02:36
  • 1861

第十一周OJ——输出两个年份之间的所有闰年

问题描述:做一个可以查找出x年到x年之间的闰年的程序,并每八个一行转行输出 文件名称:the_eleventh_week_OJ2964 作者:何知令 发表时间:2016年11月10日 输入:前一日期和...
  • qq_36203090
  • qq_36203090
  • 2016年11月10日 08:47
  • 177

求两个日期之间间隔的天数,Python实现

def leap_year(y): #判断是否是闰年 if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0: return ...
  • jk123vip
  • jk123vip
  • 2014年08月18日 01:34
  • 1181

Java 计算两个日期之间的天数

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor...
  • purple25
  • purple25
  • 2017年06月22日 16:43
  • 786

计算两个日期之间的工作日天数

js计算两个日期之间的工作日天数
  • fb281906011
  • fb281906011
  • 2014年05月10日 10:50
  • 4701

jqueryeasyui 中 datetimebox 取两个日期间相隔的天数

在 jqueryeasyui 中: 使用 datetimebox 日期控件, 选择开始日期, 结束日期,然后计算两日期间相隔天数; 然后用 相隔天数 x 补助费用 计算 包干费用;...
  • qq_29586781
  • qq_29586781
  • 2017年06月12日 19:38
  • 390

计算两个日期间的天数

计算两个日期间的天数 这个不难,只是要很心细,上次写提碰到这个,忽然间去做,觉得好麻烦,今天找时间完整的想了遍~ 主要思想是,怎么算最快: 我觉得 应该是首先算整年份,其次整月份,然后算天数 但是,...
  • IamLiLY2_2
  • IamLiLY2_2
  • 2015年07月20日 14:55
  • 337

计算两个日期间的天数

#include int DiJiTian(int year, int month, int day); int isRunNian(int year); void swap(int *a, ...
  • shuaiqidexiaojiejie
  • shuaiqidexiaojiejie
  • 2015年07月24日 21:06
  • 167

C语言中 求两个日期间的天数

/*C语言中 求两个日期间的天数*/ /////要把年、月、日分开来求... #include int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31...
  • yhf19881015
  • yhf19881015
  • 2013年08月06日 10:29
  • 733

oracle 取两个日期间的工作日(无周六日)

创建函数: CREATE OR REPLACE FUNCTION fun_get_workdays --功能:取两个日期之间的工作日期数,即除去周六日的天数 --编码,设计:Alvin Zhan...
  • payton_liu
  • payton_liu
  • 2014年12月26日 16:15
  • 1089
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:经典 求 两个 日期间的间隔。。。
举报原因:
原因补充:

(最多只允许输入30个字)