import java.util.calendar_CalendarUtil.java

1 packagecom.honghailt.dataextracter.utils;2

3 importjava.text.ParseException;4 importjava.text.SimpleDateFormat;5 importjava.util.ArrayList;6 importjava.util.Calendar;7 importjava.util.Date;8 importjava.util.List;9

10 public classCalendarUtil {11

12 //下月第一天

13 public staticDate getNextMonth(Date beginTime) {14 Calendar c =Calendar.getInstance();15 c.setTime(beginTime);16 c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);17 c.set(Calendar.DAY_OF_MONTH, 1);18 returnc.getTime();19 }20

21 //当天几号

22 public static intgetMonthOfDate(Date date) {23 Calendar c =Calendar.getInstance();24 c.setTime(date);25 returnc.get(Calendar.DAY_OF_MONTH);26 }27 //当月有多少天

28 public static intgetLastDayOfMonth(Date date) {29 Calendar c =Calendar.getInstance();30 c.setTime(date);31 int month =c.getActualMaximum(Calendar.DATE);32 returnmonth;33 }34

35 //当前月 -1

36 public static intgetMonth(Date date) {37 Calendar c =Calendar.getInstance();38 c.setTime(date);39 int month =c.get(Calendar.MONTH);40 returnmonth;41 }42

43 //当月第一天

44 public staticDate getFirstDayOfMonth(Date beginTime){45 Calendar c =Calendar.getInstance();46 c.setTime(beginTime);47 c.set(Calendar.DAY_OF_MONTH, 1);48 returnc.getTime();49 }50

51 //获得当周第几天 i=0表示星期一

52 public static String getNowWeekBegin(Date date,inti) {53 Calendar cd =Calendar.getInstance();54 cd.setTime(date);55 cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH +i);56 if(i==6){57 cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH+5);58 cd.add(cd.DATE, 1);59 }60 Date monday =cd.getTime();61 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");62 String preMonday =df.format(monday);63 returnpreMonday ;64 }65

66 //获得当周第几天,返回日期形。i=0表示星期一

67 public static Date getNowWeekBeginDate(Date date,inti) {68 Calendar cd =Calendar.getInstance();69 cd.setTime(date);70 cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH +i);71 if(i==6){72 cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH+5);73 cd.add(cd.DATE, 1);74 }75 Date monday =cd.getTime();76 returnmonday ;77 }78 //获得本周日期

79 public static ListgetDaysOfWeek(Date date){80 List days = new ArrayList();81 for (int i = 0; i < 7; i++) {82 days.add(getNowWeekBegin(date,i));83 }84 returndays;85 }86 //获得本周日期

87 public static ListgetDaysOfWeekDate(Date date){88 List days = new ArrayList();89 for (int i = 0; i < 7; i++) {90 days.add(getNowWeekBeginDate(date,i));91 }92 returndays;93 }94

95 /**

96 * 获得当月第几周97 *@paramdate98 *@paramweek99 *@return

100 */

101 public static List getWeeksOfMonth(Date date,intweek){102 int day =7*week+1;103 Calendar c =Calendar.getInstance();104 c.setTime(date);105 c.set(Calendar.DAY_OF_MONTH, day);106 returngetDaysOfWeek(c.getTime());107 }108

109 //本月最后一天

110 public staticDate getDateOfLastDayOfMonth(Date date){111 Calendar c =Calendar.getInstance();112 c.setTime(date);113 c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DATE));114 returnc.getTime();115 }116 //获得本月第几天,0表示第一天

117 public static Date getDayOfMonth(Date date,inti){118 Calendar c =Calendar.getInstance();119 c.setTime(date);120 c.set(Calendar.DAY_OF_MONTH, i+1);121 returnc.getTime();122 }123 //本月共几周

124 public static intgetWeekyofMonth(Date date){125 Date d1 = getFirstDayOfMonth(date);//第一天

126 Date d2 = getDateOfLastDayOfMonth(date);//最后一天

127 Date mon1 =getNowWeekBeginDate(d1,0);//第一天所在周星期一

128 Date mon2 =getNowWeekBeginDate(d2,0);//最后一天所在周星期一

129 return (int) ((mon2.getTime()-mon1.getTime())/3600/24/1000)/7;130 }131 public static ListgetWeekName(){132 List list = new ArrayList();133 list.add("周一");134 list.add("周二");135 list.add("周三");136 list.add("周四");137 list.add("周五");138 list.add("周六");139 list.add("周日");140 returnlist;141

142 }143 /**

144 * 首先获得 定一个时间,就2014-07-14为单周145 * 然后获得传过来日期的星期一与这个时间除以7.146 * 然后结果除以2,如果余数是0,这是单周,否则是双周147 *@paramdate148 *@return

149 */

150 public staticString getDanShuangWeek(Date date){151 Date beginDate =StringToDate("2014-07-14");152 Date nowDate =getNowWeekBeginDate(date,0);153 int temp = (int) ((nowDate.getTime() -beginDate.getTime())/3600/24/1000);154 int danshuang=temp%2;155 String str=null;156 if(danshuang==0){157 str="单周";158 }else{159 str="双周";160 }161 returnstr;162 }163

164 public static intgetDanShuangWeekInt(Date date){165 Date beginDate =StringToDate("2014-07-14");166

167 Date nowDate =getNowWeekBeginDate(date,0);168 int temp = (int) ((nowDate.getTime() -beginDate.getTime())/3600/24/1000);169 int danshuang=temp%2;170 returndanshuang;171 }172

173 public staticDate StringToDate(String strDate){174 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");175 Date date =null;176 try{177 date =df.parse(strDate);178 } catch(ParseException e) {179 //TODO Auto-generated catch block

180 e.printStackTrace();181 }182 returndate;183 }184

185 public staticDate DateToDate(Date date){186 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");187 String strDate=df.format(date);188 returnStringToDate(strDate);189 }190

191 public static voidmain(String[] args) {192 //System.out.println(getDanShuangWeek(StringToDate("2014-08-02"))); ;193 //System.out.println(getDayOfMonth(new Date(),10));

194 System.out.println(DateToDate(newDate()));195 }196 }

package com.hexiang.utils; import java.text.SimpleDateFormat; import java.util.*; public class CalendarUtil { public static void main(String args[]) { System.out.println("First day of week is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getFirstDateByWeek(new Date()))); System.out.println("Last day of week is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getLastDateByWeek(new Date()))); System.out.println("First day of month is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getFirstDateByMonth(new Date()))); System.out.println("Last day of month is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getLastDateByMonth(new Date()))); } /** * 获得所在星期的第一天 */ public static Date getFirstDateByWeek(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); int today = now.get(Calendar.DAY_OF_WEEK); int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 now.set(Calendar.DATE, first_day_of_week); return now.getTime(); } /** * 获得所在星期的最后一天 */ public static Date getLastDateByWeek(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); int today = now.get(Calendar.DAY_OF_WEEK); int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 int last_day_of_week = first_day_of_week + 6; // 星期日 now.set(Calendar.DATE, last_day_of_week); return now.getTime(); } /** * 获得所在月份的最后一天 * @param 当前月份所在的时间 * @return 月份的最后一天 */ public static Date getLastDateByMonth(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); now.set(Calendar.MONTH, now.get(Calendar.MONTH) + 1); now.set(Calendar.DATE, 1); now.set(Calendar.DATE, now.get(Calendar.DATE) - 1); now.set(Calendar.HOUR, 11); now.set(Calendar.MINUTE, 59); now.set(Calendar.SECOND, 59); return now.getTime(); } /** * 获得所在月份的第一天 * @param 当前月份所在的时间 * @return 月份的第一天 */ public static Date getFirstDateByMonth(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); now.set(Calendar.DATE, 0); now.set(Calendar.HOUR, 12); now.set(Calendar.MINUTE, 0); now.set(Calendar.SECOND, 0); return now.getTime(); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值