* @return String[]{季度起始日期, 季度结束日期}
public
static
String
[
]
getSeasonDay
(
String
dateStr
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DATE_PATTERN
)
;
Date
date
;
if
(
StringUtils
.
isNotEmpty
(
dateStr
)
)
{
try
{
date
=
sdf
.
parse
(
dateStr
)
;
}
catch
(
ParseException
e
)
{
log
.
error
(
"转换字符串:{}为日期失败,错误信息:{}"
,
dateStr
,
e
)
;
return
null
;
}
else
{
date
=
new
Date
(
)
;
Calendar
c
=
Calendar
.
getInstance
(
)
;
c
.
setTime
(
date
)
;
int
month
=
c
.
get
(
Calendar
.
MONTH
)
;
Calendar
startC
=
Calendar
.
getInstance
(
)
;
startC
.
setTime
(
date
)
;
int
seasonStartMonthNum
=
(
int
)
(
Math
.
floor
(
month
/
3.0
)
*
3
)
;
startC
.
set
(
Calendar
.
MONTH
,
seasonStartMonthNum
)
;
startC
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
)
;
String
seasonStartDateStr
=
sdf
.
format
(
startC
.
getTime
(
)
)
;
Calendar
endC
=
Calendar
.
getInstance
(
)
;
endC
.
setTime
(
date
)
;
int
seasonEndMonthNum
;
seasonEndMonthNum
=
seasonStartMonthNum
+
2
;
endC
.
set
(
Calendar
.
MONTH
,
seasonEndMonthNum
)
;
endC
.
set
(
Calendar
.
DAY_OF_MONTH
,
endC
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
)
)
;
String
seasonEndDateStr
=
sdf
.
format
(
endC
.
getTime
(
)
)
;
return
new
String
[
]
{
seasonStartDateStr
,
seasonEndDateStr
}
;
* 获取当前季度日期——方式二
* @param dateStr 当前日期字符串,默认为当前日期
* @return String[]{季度起始日期, 季度结束日期}
public
static
String
[
]
getSeasonDay22
(
String
dateStr
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DATE_PATTERN
)
;
Date
date
;
if
(
StringUtils
.
isNotEmpty
(
dateStr
)
)
{
try
{
date
=
sdf
.
parse
(
dateStr
)
;
}
catch
(
ParseException
e
)
{
log
.
error
(
"转换字符串:{}为日期失败,错误信息:{}"
,
dateStr
,
e
)
;
return
null
;
}
else
{
date
=
new
Date
(
)
;
Calendar
c
=
Calendar
.
getInstance
(
)
;
c
.
setTime
(
date
)
;
int
month
=
c
.
get
(
Calendar
.
MONTH
)
;
int
seasonEndMonthNum
=
(
int
)
(
Math
.
ceil
(
(
month
+
1
)
/
3.0
)
*
3
)
-
1
;
Calendar
endC
=
Calendar
.
getInstance
(
)
;
endC
.
setTime
(
date
)
;
endC
.
set
(
Calendar
.
MONTH
,
seasonEndMonthNum
)
;
endC
.
set
(
Calendar
.
DAY_OF_MONTH
,
endC
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
)
)
;
Calendar
startC
=
Calendar
.
getInstance
(
)
;
startC
.
setTime
(
date
)
;
int
seasonStartMonthNum
=
seasonEndMonthNum
-
2
;
startC
.
set
(
Calendar
.
MONTH
,
seasonStartMonthNum
)
;
startC
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
)
;
String
seasonStartDateStr
=
sdf
.
format
(
startC
.
getTime
(
)
)
;
String
seasonEndDateStr
=
sdf
.
format
(
endC
.
getTime
(
)
)
;
return
new
String
[
]
{
seasonStartDateStr
,
seasonEndDateStr
}
;
* 获取当前时间季度
* @param dateStr
* @return
public
int
getQuarterOfDay
(
String
dateStr
)
{
int
month
=
0
;
try
{
Date
date
=
parseDateStr
(
dateStr
)
;
Calendar
c
=
Calendar
.
getInstance
(
)
;
c
.
setTime
(
date
)
;
month
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
}
catch
(
Exception
e
)
{
log
.
error
(
"转换日期失败,"
,
e
)
;
return
0
;
return
month
%
3
==
0
?
month
/
3
:
month
/
3
+
1
;
import
java
.text.ParseException;
import
java
.text.SimpleDateFormat;
import
java
.util.Calendar;
import
java
.util.Date;
* 根据给定时间
获取
周、月度、
季度
、年度开始结束时间
* @author wsp
public class DateCalendarUtil {
拿到返回值,将其以逗号分隔开就可以用了(参数的dateType值需要前端传,前端选择相应的时间,比如前端传3,那就是
获取
当前
时间的本月开始时间与结束时间)项目中的大屏统计经常会用到根据时间去统计相关数据,所以就需要
获取
相应的开始时间与结束时间,以便在sql中能查询出对应区间的数据。代码直接复制就可以用,返回的数据就是开始时间与结束时间。
计算
日期
所在的
季度
在实际的软件
开发
中,有时候需要根据
日期
来进行一些
季度
相关的计算,比如根据给定的
日期
确定该
日期
所在的
季度
。在
Java
中,我们可以通过一些简单的计算来实现这个功能。接下来,我们将介绍如何使用
Java
代码来计算
日期
所在的
季度
。
在计算
日期
所在的
季度
时,我们可以采用以下逻辑:
首先,根据给定的
日期
,...
1、
获取
本月的第一天和最后一天。2、
获取
今天的时间范围。3、
获取
本周的第一天和最后一天4、
获取
上个月的时间范围。5、
获取
本
季度
的第一天和最后一天。6、
获取
今年的第一天和最后一天。7、
获取
上一年的第一天和最后一天。