获取两个日期之间的日期

1、获取两个日期之间的日期(包含首尾日期)

public  String getStrBetweenDate(String start,String end){

String result="";

try {

//定义日历实例

Calendar calendar = Calendar.getInstance();

//定义起止日期

Date dateStart = null, dateEnd = null;

long endLong=0l,startLong=0l;

//起始日期是否大于终止日期,默认不大于false

boolean flag=false;

//定义格式化日期实例

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

//开始日期

dateStart = dateFormat.parse(start);

//结束日期

dateEnd = dateFormat.parse(end);

//判断起始日期是否大于终止日期

flag=dateStart.after(dateEnd);

//给日历赋值

calendar.setTime(dateEnd);

//获得结束日期的毫秒数

endLong = calendar.getTimeInMillis();

//给日历赋值

calendar.setTime(dateStart);

//获得结束日期的毫秒数

startLong = calendar.getTimeInMillis();

//得到两个日期间隔的毫秒数

//用总的间隔毫秒除以一天时间的毫秒,得到间隔天数

int days = 0;

if(flag){

days = new Long((startLong-endLong) / (1000 * 60 * 60 * 24)).intValue();

calendar.setTime(dateEnd);

}else{

days = new Long((endLong-startLong) / (1000 * 60 * 60 * 24)).intValue();

}

calendar.add(Calendar.DAY_OF_YEAR, -1);//日历跳转到上一天

for (int i = 0; i <= days; i++) {

calendar.add(Calendar.DAY_OF_YEAR, 1);//日历跳转到下一天

String day=dateFormat.format(calendar.getTime());

result+="'"+day+"',";

}

result=result.substring(0, result.lastIndexOf(","));

} catch (ParseException e) {

e.printStackTrace();

}catch(Exception ex){

ex.printStackTrace();

}

return result;

}

2、SQL查询时拼接日期

public String prepareDS(String start,String end){

String ds = "";

try {

if ((null == start && null == end)

|| ("".equals(start) && "".equals(end))) {// 没有起止时间,则默认为不拼接查询条件,直接返回空''

return ds;

} else if (null == start || "".equals(start)) {// 起始时间为空的情况下

if (null != end && !"".equals(end)) {

ds = " ds='" + end.substring(0, 10) + "' ";

} else {

return ds;

}

} else if (null == end || "".equals(end)) {//终止时间为空的情况下

if (null != start && !"".equals(start)) {

ds = " ds='" + start.substring(0, 10) + "' ";

} else {

return ds;

}

} else {// 起始时间,终止时间不为空的情况下

ds = " ds in(" + getStrBetweenDate(start, end) + ")";

}

} catch (Exception e) {

e.printStackTrace();

}

return ds;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,497评论 18 399
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,857评论 0 17
  • 先Activity的抽象类 BaseActivity [java]view plaincopy /** *Acti...
    Zaker2Magic阅读 4,605评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,838评论 19 139
  • 含辛茹苦无悔,容颜悴。相夫教子持家心操碎。 墨迹悬,青毫走,书几回?难赋慈母恩情说纸贵。 又 日月阴晴圆亏,光阴催...
    格桑白菊阅读 2,713评论 0 2

友情链接更多精彩内容