【原创】
之前在很多竞赛的题目中有这样饿一类题,计算给定两个日期之间的相隔天数,或者很多类似的题目,都是需要转化到这个问题上时,之前用c++写的时候思想是这样的,一个结构体,包括年月日,还有一个计算下一天的函数,建立一个整形数组int buf[5001][13][32];看上去很吓人吧,没错就是将5000年全部存下来,存什么呢,比如说让0000-1-1为第一天,那么buf[0000][1][1] = 1;buf[0000][1][2]=2;这样一开始初始化后,便将起全部存储下来,计算两个日期差直接两个数组元素相减便得到结果;
但是用java可以直接利用内库中的很多封装类来做嘛,这才能体现java的强大嘛
说多了无聊,直接来代码;
1 package com.jiajia.filedemo; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 8 public class Demo3 { 9 10 11 private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 12 13 public static void main(String []args) throws Exception{ 14 String first = "1995-9-2"; 15 String second = "2017-3-22"; 16 Date firstdate = format.parse(first); 17 Date seconddate = format.parse(second); 18 int cnt = longOfTwoDate(firstdate, seconddate); 19 System.out.println(cnt); 20 } 21 22 public static int longOfTwoDate(Date first,Date second) throws ParseException{ 23 Calendar calendar = Calendar.getInstance(); 24 calendar.setTime(first); 25 int cnt = 0; 26 while(calendar.getTime().compareTo(second)!=0){ 27 calendar.add(Calendar.DATE, 1); 28 cnt++; 29 } 30 return cnt; 31 } 32 }
没有写注释,代码很简单啊,主要是
longOfTwoDate函数搞懂就好了,利用到了Calender这个类;有一个自加功能;所以so easy
---
### 最后
- 本文内容个人拙见,若有出入,欢迎指正。
- 欢迎赏脸关注:家佳Talk
