ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java获取当前时间季度开始和结束时间以及对应的天数,

2021-01-08 21:05:05  阅读:226  来源: 互联网

标签:Java String 天数 valueOf 时间 mouth Calendar LocalDate today


 1     /**
 2      * 获取当前日期所在季度的开始日期和结束日期
 3      * 季度一年四季, 第一季度:1月-3月, 第二季度:4月-6月, 第三季度:7月-9月, 第四季度:10月-12月
 4      * @param isFirst  true表示查询本季度开始日期  false表示查询本季度结束日期
 5      * @return
 6      */
 7     public static LocalDate getStartOrEndDayOfQuarter(Boolean isFirst){
 8         LocalDate today=LocalDate.now();
 9         LocalDate resDate = LocalDate.now();
10         if (today == null) {
11             today = resDate;
12         }
13         Month month = today.getMonth();
14         Month firstMonthOfQuarter = month.firstMonthOfQuarter();
15         Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
16         if (isFirst) {
17             resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1);
18         } else {
19             resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear()));
20         }
21         return resDate;
22     }
23     //获取当前季度
24     public static String getQuarterByDate(String date) throws ParseException {
25         if(date == ""|| "".equals(date)){
26             return "";
27         }
28         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
29         Date datePar = sdf.parse(date);
30         Calendar calendar = Calendar.getInstance();
31         calendar.setTime(datePar);
32 
33         String year = String.valueOf(calendar.get(Calendar.YEAR));
34         int mouth = datePar.getMonth()+1;
35 
36         if(mouth>=1 && mouth<=3){
37             return year + "年第一季度";
38         }else if(mouth>=4 && mouth<=6){
39             return year + "年第二季度";
40         }else if(mouth>=7 && mouth<=9){
41             return year + "年第三季度";
42         }else if(mouth>=10 && mouth<=12){
43             return year + "年第四季度";
44         }else{
45             return "";
46         }
47     }
48 
49     /**
50      * 获取当期季度的天数
51      * @param cntDateBeg  开始时间
52      * @param cntDateEnd  结束时间
53      * @return
54      */
55     public static List<String> addDates(String cntDateBeg, String cntDateEnd) {
56         List<String> list = new ArrayList<>();
57         String[] dateBegs = cntDateBeg.split("-");
58         String[] dateEnds = cntDateEnd.split("-");
59         Calendar start = Calendar.getInstance();
60         start.set(Integer.valueOf(dateBegs[0]), Integer.valueOf(dateBegs[1]) - 1, Integer.valueOf(dateBegs[2]));
61         Long startTIme = start.getTimeInMillis();
62         Calendar end = Calendar.getInstance();
63         end.set(Integer.valueOf(dateEnds[0]), Integer.valueOf(dateEnds[1]) - 1, Integer.valueOf(dateEnds[2]));
64         Long endTime = end.getTimeInMillis();
65         Long oneDay = 1000 * 60 * 60 * 24l;
66         Long time = startTIme;
67         while (time <= endTime) {
68             Date d = new Date(time);
69             DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
70             time += oneDay;
71             list.add(df.format(d));
72         }
73         return list;
74     }

 

标签:Java,String,天数,valueOf,时间,mouth,Calendar,LocalDate,today
来源: https://www.cnblogs.com/yumu77/p/14253355.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有