package org.apple.date; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 周期时间 * @author shaoyu * */ public class CycleDate { public static void main(String[] args) { SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); Calendar calendar = Calendar.getInstance(); //calendar.setTime(new Date()); System.out.println(calendar.get(Calendar.YEAR)); System.out.println(calendar.get(Calendar.MONTH)+1); // 月加1 System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); System.out.println("当月第几周:"+calendar.get(Calendar.WEEK_OF_MONTH)); System.out.println("当年第几周:"+calendar.get(Calendar.WEEK_OF_YEAR)); System.out.println(calendar.get(Calendar.DAY_OF_WEEK)-1); // 周减1 int hour_24 = calendar.get(Calendar.HOUR_OF_DAY); int hour_12 = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.println("24小时制 "+hour_24 +":"+ minute +":" + second); System.out.println("12小时制 "+hour_12 +":"+ minute +":" + second); System.out.println("当前时间:"+dateformat.format(calendar.getTime()) + " || 毫秒数:"+ calendar.getTimeInMillis()); calendar.add(Calendar.MONTH, 1); System.out.println("下一月当前时间:"+dateformat.format(calendar.getTime()) + " || 毫秒数:"+ calendar.getTimeInMillis()); calendar.add(Calendar.WEEK_OF_MONTH, 1); System.out.println("下一周当前时间:" + dateformat.format(calendar.getTime()) + " || 毫秒数:"+ calendar.getTimeInMillis()); calendar.add(Calendar.YEAR, 1); System.out.println("下一年当前时间:" + dateformat.format(calendar.getTime()) + " || 毫秒数:"+ calendar.getTimeInMillis()); //System.out.println("季度开始时间 : "+ dateformat.format(getCurrentQuarterStartTime())); System.out.println("下一季度结果时间: " + dateformat.format(getCurrentQuarterEndTime(calendar.get(Calendar.MONTH)+4))); } public Date lastDayOfMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.roll(Calendar.DAY_OF_MONTH, -1); return calendar.getTime(); } /** * 当前季度的开始时间 */ public static Date getCurrentQuarterStartTime() { SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar.getInstance(); int currentMonth = c.get(Calendar.MONTH) + 1; Date now = null; try { if (currentMonth >= 1 && currentMonth <= 3) c.set(Calendar.MONTH, 0); else if (currentMonth >= 4 && currentMonth <= 6) c.set(Calendar.MONTH, 3); else if (currentMonth >= 7 && currentMonth <= 9) c.set(Calendar.MONTH, 6); else if (currentMonth >= 10 && currentMonth <= 12) c.set(Calendar.MONTH, 9); c.set(Calendar.DATE, 1); now = dateformat.parse(dateformat.format(c.getTime()) + " 00:00"); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 当前季度的结束时间 */ public static Date getCurrentQuarterEndTime(int currentMonth) { SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar.getInstance(); Date now = null; try { if (currentMonth >= 1 && currentMonth <= 3) { c.set(Calendar.MONTH, 2); c.set(Calendar.DATE, 31); } else if (currentMonth >= 4 && currentMonth <= 6) { c.set(Calendar.MONTH, 5); c.set(Calendar.DATE, 30); } else if (currentMonth >= 7 && currentMonth <= 9) { c.set(Calendar.MONTH, 8); c.set(Calendar.DATE, 30); } else if (currentMonth >= 10 && currentMonth <= 12) { c.set(Calendar.MONTH, 11); c.set(Calendar.DATE, 31); } now = dateformat.parse(dateformat.format(c.getTime()) + " 23:59"); } catch (Exception e) { e.printStackTrace(); } return now; } }