来自:http://esffor.iteye.com/blog/168233
功能:今天,昨天,本周,上周,本月,上月
范围:以周一作为一周的第一天,每周天数5天
代码:
import
java.util.Date;
import
java.util.GregorianCalendar;



public
class
TestCalendar
...
{

public
static
String begin
=
""
;
public
static
String end
=
""
;
public
static
String now
=
new
java.sql.Date(
new
Date().getTime()).toString();

public
static
void
main(String[] args)
...
{
//
今天
calcToday(begin,end,now,
new
GregorianCalendar());
//
昨天
calcYesterday(begin,end,now,
new
GregorianCalendar());
//
本周
calcThisWeek(begin,end,now,
new
GregorianCalendar());
//
上周
calcLastWeek(begin,end,now,
new
GregorianCalendar());
//
本月
calcThisMonth(begin,end,now,
new
GregorianCalendar());
//
上月
calcLastMonth(begin,end,now,
new
GregorianCalendar());
}

public
static
void
calcToday(String begin,String end,String now,GregorianCalendar calendar)
...
{
begin
=
now;
end
=
now;
System.out.println(
"
begin:
"
+
begin);
System.out.println(
"
end:
"
+
end);
System.out.println(
"
----------------------
"
);
}

public
static
void
calcYesterday(String begin,String end,String now,GregorianCalendar calendar)
...
{

calendar.add(GregorianCalendar.DATE,
-
1
);
begin
=
new
java.sql.Date(calendar.getTime().getTime()).toString();
end
=
begin;
System.out.println(
"
begin:
"
+
begin);
System.out.println(
"
end:
"
+
end);
System.out.println(
"
----------------------
"
);
}

public
static
void
calcThisWeek(String begin,String end,String now,GregorianCalendar calendar)
...
{
end
=
now;
int
minus
=
calendar.get(GregorianCalendar.DAY_OF_WEEK)
-
2
;

if
(minus
<
0
)
...
{
System.out.println(
"
本周还没有开始,请查询上周
"
);
System.out.println(
"
----------------------
"
);

}
else
...
{
calendar.add(GregorianCalendar.DATE,
-
minus);
begin
=
new
java.sql.Date(calendar.getTime().getTime()).toString();
System.out.println(
"
begin:
"
+
begin);
System.out.println(
"
end:
"
+
end);
System.out.println(
"
----------------------
"
);
}
}

public
static
void
calcLastWeek(String begin,String end,String now,GregorianCalendar calendar)
...
{
int
minus
=
calendar.get(GregorianCalendar.DAY_OF_WEEK)
+
1
;
calendar.add(GregorianCalendar.DATE,
-
minus);
end
=
new
java.sql.Date(calendar.getTime().getTime()).toString();
calendar.add(GregorianCalendar.DATE,
-
4
);
begin
=
new
java.sql.Date(calendar.getTime().getTime()).toString();
System.out.println(
"
begin:
"
+
begin);
System.out.println(
"
end:
"
+
end);
System.out.println(
"
----------------------
"
);
}


public
static
void
calcThisMonth(String begin,String end,String now,GregorianCalendar calendar)
...
{
end
=
now;
int
dayOfMonth
=
calendar.get(GregorianCalendar.DATE);
calendar.add(GregorianCalendar.DATE,
-
dayOfMonth
+
1
);
begin
=
new
java.sql.Date(calendar.getTime().getTime()).toString();
System.out.println(
"
begin:
"
+
begin);
System.out.println(
"
end:
"
+
end);
System.out.println(
"
----------------------
"
);
}

public
static
void
calcLastMonth(String begin,String end,String now,GregorianCalendar calendar)
...
{
calendar.set(calendar.get(GregorianCalendar.YEAR),calendar.get(GregorianCalendar.MONTH),
1
);
calendar.add(GregorianCalendar.DATE,
-
1
);
end
=
new
java.sql.Date(calendar.getTime().getTime()).toString();
int
month
=
calendar.get(GregorianCalendar.MONTH)
+
1
;
begin
=
calendar.get(GregorianCalendar.YEAR)
+
"
-
"
+
month
+
"
-01
"
;
System.out.println(
"
begin:
"
+
begin);
System.out.println(
"
end:
"
+
end);
System.out.println(
"
----------------------
"
);
}
}
结果:
查询今天
begin:2007-12-18
end:2007-12-18
----------------------
查询昨天
begin:2007-12-17
end:2007-12-17
----------------------
查询本周
begin:2007-12-17
end:2007-12-18
----------------------
查询上周
begin:2007-12-10
end:2007-12-14
----------------------
查询本月
begin:2007-12-01
end:2007-12-18
----------------------
查询上月
begin:2007-11-01
end:2007-11-30
----------------------