思路:
先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
/** * @param flag true:开始日期;false:结束日期 * @return */ public static String getLastQuarterTime( boolean flag){ SimpleDateFormat shortSdf = new SimpleDateFormat( "yyyy-MM-dd" ); SimpleDateFormat longSdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); String resultDate= "" ; Date now = null ; try { Calendar calendar = Calendar.getInstance(); int currentMonth = calendar.get(Calendar.MONTH) + 1 ; //true:开始日期;false:结束日期 if (flag){ if (currentMonth >= 1 && currentMonth <= 3 ) calendar.set(Calendar.MONTH, 0 ); else if (currentMonth >= 4 && currentMonth <= 6 ) calendar.set(Calendar.MONTH, 3 ); else if (currentMonth >= 7 && currentMonth <= 9 ) calendar.set(Calendar.MONTH, 6 ); else if (currentMonth >= 10 && currentMonth <= 12 ) calendar.set(Calendar.MONTH, 9 ); calendar.set(Calendar.DATE, 1 ); now = longSdf.parse(shortSdf.format(calendar.getTime()) + " 00:00:00" ); } else { if (currentMonth >= 1 && currentMonth <= 3 ) { calendar.set(Calendar.MONTH, 2 ); calendar.set(Calendar.DATE, 31 ); } else if (currentMonth >= 4 && currentMonth <= 6 ) { calendar.set(Calendar.MONTH, 5 ); calendar.set(Calendar.DATE, 30 ); } else if (currentMonth >= 7 && currentMonth <= 9 ) { calendar.set(Calendar.MONTH, 8 ); calendar.set(Calendar.DATE, 30 ); } else if (currentMonth >= 10 && currentMonth <= 12 ) { calendar.set(Calendar.MONTH, 11 ); calendar.set(Calendar.DATE, 31 ); } now = longSdf.parse(shortSdf.format(calendar.getTime()) + " 23:59:59" ); } calendar.setTime(now); // 设置日期 calendar.add(Calendar.MONTH, - 3 ); resultDate = longSdf.format(calendar.getTime()); } catch (Exception e) { ; } return resultDate; } |