功能:今天,昨天,本周,上周,本月,上月
范围:以周一作为一周的第一天,每周天数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 ----------------------