博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从一段时间段中获取所有日期
阅读量:7081 次
发布时间:2019-06-28

本文共 2958 字,大约阅读时间需要 9 分钟。

写的一个工具,从一个时间段内获取这些详细的日期list

1       2      /**  3      * 从一段日期中,获取每个日期在整个时间段内的占比  4      * ---------------------------------------------------------------------  5      * -- Example:
6 * -- 输入 20190313 12:00:00 和 20190315 12:00:00 7 * -- 输出 [20190313,0.25] [20190314,0.5] [20190315,0.25] 8 * --------------------------------------------------------------------- 13 */ 14 public static HashMap
getDateAndRate(String stime,String etime) throws ParseException{ 15 HashMap
map=new HashMap
(); 16 SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd HH:mm:ss"); 17 long s0=df.parse(stime).getTime(); 18 long s1=df.parse(etime).getTime(); 19 long all=s1-s0; 20 21 ArrayList
list =getDateListBetween2Day(stime,etime); 22 if(list.size()==1) { 23 map.put(list.get(0), 1.00D); 24 }else { 25 for(int i=1;i
getDateListBetween2Day(String stime,String etime) throws ParseException{ 50 return getDateListBetween2Day(stime,etime,"yyyyMMdd"); 51 } 52 53 public static ArrayList
getDateListBetween2Day(String stime,String etime,String date_pattern) throws ParseException{ 54 ArrayList
list= new ArrayList
(); 55 SimpleDateFormat df=new SimpleDateFormat(date_pattern); 56 Calendar cal = Calendar.getInstance(); 57 Date sdate=df.parse(stime); 58 Date edate=df.parse(etime); 59 cal.setTime(sdate); 60 while(edate.after(sdate)) { 61 list.add(df.format(sdate)); 62 cal.add(Calendar.DAY_OF_MONTH,1); 63 sdate=cal.getTime(); 64 } 65 list.add(df.format(edate)); 66 return list; 67 } 68 69 /** 70 * 获取该时间戳距当天结束的时间 71 * --------------------------------------------------------------------- 72 * -- Example:
73 * -- 输入 20190313 12:00:00 的longtime值 74 * -- 输出 20190313 12:00:00距20190313 24:00:00的毫秒差 75 * --------------------------------------------------------------------- 78 */ 79 public static long getSecondEnd(long longdate){ 80 Calendar cal = Calendar.getInstance(); 81 cal.setTimeInMillis(longdate); 82 cal.set(Calendar.HOUR_OF_DAY, 24); 83 cal.set(Calendar.MINUTE, 0); 84 cal.set(Calendar.SECOND, 0); 85 long max =cal.getTimeInMillis(); 86 return max-longdate; 87 } 88 89 /** 90 * 获取该时间戳距当天开始的时间 91 * --------------------------------------------------------------------- 92 * -- Example: 93 * -- 输入 20190313 12:00:00 的longtime值 94 * -- 输出 20190313 12:00:00距20190313 00:00:00的毫秒差 95 * --------------------------------------------------------------------- 98 */ 99 public static long getSecondStart(long longdate){100 Calendar cal = Calendar.getInstance();101 cal.setTimeInMillis(longdate);102 cal.set(Calendar.HOUR_OF_DAY, 0);103 cal.set(Calendar.MINUTE, 0);104 cal.set(Calendar.SECOND, 0);105 long min =cal.getTimeInMillis();106 return longdate-min;107 }

 

转载于:https://www.cnblogs.com/yanghaolie/p/10559798.html

你可能感兴趣的文章
MapReduce1 工作机制
查看>>
LINUX修改文件权限
查看>>
面向对象
查看>>
C++的引用类型的变量到底占不占用内存空间?
查看>>
词法分析
查看>>
JavaBean
查看>>
[NOIP2016]换教室
查看>>
week06 12 后端utils cloudAMQP_client.py 安装pika
查看>>
Maven-Standard Directory Layout
查看>>
mvc Html.Editor 自定义模板
查看>>
好的团队,差的团队
查看>>
python lambda表达式
查看>>
S3 exercise -- 文件操作&函数
查看>>
qhfl-3 Course模块
查看>>
Oracle 求昨天 上个月 去年 日期
查看>>
HTML(一)基础
查看>>
Mydumper介绍
查看>>
Vue开发常见问题处理
查看>>
iOS学习笔记30-系统服务(三)蓝牙
查看>>
Java中实现短信发送
查看>>