java根据开始时间结束时间计算中间间隔日期

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class Test {

/**
* @title 根据开始时间,结束时间获取期间所有日期yyyy-MM-dd
* 例:开始时间:2019-05-01 结束时间:2019-05-05
* @param [stime, etime]
* @return java.util.List<java.lang.String>
*/
public static List<String> findDates(String stime, String etime)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date dBegin = sdf.parse(stime);
Date dEnd = sdf.parse(etime);

List<String> allDate = new ArrayList();
allDate.add(sdf1.format(dBegin));
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
// 测试此日期是否在指定日期之后
while (dEnd.after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
allDate.add(sdf1.format(calBegin.getTime()));
}
return allDate;
}

public static void main(String[] args) {
//测试数据
String stime = "2019-05-01";
String etime = "2019-05-05";
//集合中包含2019-05-01/2019-05-05,不需要可去除
List<String> list = new ArrayList<>();
try {
list = findDates(stime, etime);
} catch (ParseException e) {
e.printStackTrace();
}
for(String time : list) {
System.out.println(time);
}
System.out.println("间隔天数:" + list.size());
}
}
---------------------

原文地址:https://www.cnblogs.com/hyhy904/p/10930686.html

时间: 2024-07-30 23:00:16

java根据开始时间结束时间计算中间间隔日期的相关文章

知道开始时间结束时间 计算这之间一共多少天

/** * 获取指定日期段内每一天的日期 * @param Date $startdate 开始日期 * @param Date $enddate 结束日期 * @return Array */ function getDateFromRange($startdate, $enddate){ $stimestamp = strtotime($startdate); $etimestamp = strtotime($enddate); // 计算日期段内有多少天 $days = ($etimest

javascript 中的时间戳转换时间 根据时间字符判断星期几 根据开始时间结束时间获取中间间隔时间 来自转发

//时间戳转换时间      function timedat(res){   //res 为传入的时间戳   例:1509091800000 var time = new Date(res); var y = time.getFullYear(); var m = time.getMonth()+1; var d = time.getDate(); return y+'-'+m+'-'+d;    //返回格式  "2017-10-27" 字符串    }; //根据时间判断星期几 

JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内

/* *JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内 *@param date1 date2(形如:'2015-01-01'类型字符串) */ function compareDate(date1,date2){ //对获得的时间戳区间与既定的时间戳进行比对 var baseDate1='2015-01-01'; var baseDate2='2015-03-31'; baseDate1=new Date(baseDate

Oracle日期周详解以及周开始结束时间计算

1 ORACLE中周相关知识描述 1.1           日期格式化函数 TO_CHAR(X [,FORMAT]):将X按FORMAT格式转换成字符串.X是一个日期,FORMAT是一个规定了X采用何种格式转换的格式字符串,FORMAT与周相关的有W,WW,IW,D,FMWW. W 的含义是一个月的第几周.是按照ORACLE自定义的标准周来返回周数. IW是ISO标准周,它的含义是ISO标准周以周别为"主线",每年最多可以有53个周别,但是每年至少要包含52个周别:如果一年当中第52

Extjs2.2 开始时间,结束时间,工期 联动(选二补一),包含日期,天数的互转

选择任意两个, 则第三个自动填写 文本框代码: var downtime_root_simple = { xtype : 'numberfield', fieldLabel : '工期(天)', name : 'plan_hours', id : 'plan_hours', allowBlank : true, readOnly : flag == 4 ? true : false, maxLength : 11, anchor : '95%', listeners : { change : f

bootstrap-datepicker 开始时间-结束时间 thinkphp

<!DOCTYPE html> <head> <title>开始-结束时间测试</title> </head> <body> <div> <p>方式一</p> <input type="text" name="datetimeStart" id="datetimeStart" value="{$map.datetimeSta

java开始时间结束时间取月份集合

public static List<String> getMonthBetween(Date minDate, Date maxDate) throws Exception { ArrayList<String> result = new ArrayList<String>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化为年月 Calendar min = Cal

php 本周开始时间和结束时间;本月开始时间结束时间;上月开始时间结束时间

<?php /** * 功能:取得给定日期所在周的开始日期和结束日期 * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD * $first 一周以星期一还是星期天开始,0为星期天,1为星期一 * 返回:数组array("开始日期", "结束日期"); * */ function aweek($gdate = "", $first = 0){ if(!$gdate) $gdate = date("Y-m-d&quo

php获取 本月 本周 或者 下月 下周的 开始时间 结束时间

<?php $now_time = time(); $date=date("Y-m-d",$now_time); function get_date($date,$t='d',$n=0) { if($t=='d'){ $firstday = date('Y-m-d 00:00:00',strtotime("$n day")); $lastday = date("Y-m-d 23:59:59",strtotime("$n day&q