16、根据年月日获取周几 以及整理的日期常用的工具类
2015-03-02 13:35
357 查看
/** * @param year * @param month * @param day * @return */ public static String CaculateWeekDay(int y,int m,int d) { String strDate = y+"-"+m+"-"+d;// 定义日期字符串 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式 Date date = null; try { date = format.parse(strDate);// 将字符串转换为日期 }catch (ParseException e) { } Calendar c = Calendar.getInstance(); c.setTime(date); int dayForWeek = 0; if(c.get(Calendar.DAY_OF_WEEK) == 1){ dayForWeek = 7; }else{ dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1; } String day = ""; switch (dayFotWeek) { case 0:day = "周日";break;
case 1:day = "周一";break;
case 2:day = "周二";break;
case 3:day = "周三";break;
case 4:day = "周四";break;
case 5:day = "周五";break;
case 6:day = "周六";break; }
return day; }
使用案例: CaculateWeekDay(2015,3,2)得到的便是“周一”; 个人使用的日期工具类分享给大家:
/** * 根据年月日,获取是周几 * @param year * @param month * @param day * @return */ public static String CaculateWeekDay(int y,int m,int d) { String strDate = y+"-"+m+"-"+d;// 定义日期字符串 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式 Date date = null; try { date = format.parse(strDate);// 将字符串转换为日期 }catch (ParseException e) { } Calendar c = Calendar.getInstance(); c.setTime(date); int dayForWeek = 0; if(c.get(Calendar.DAY_OF_WEEK) == 1){ dayForWeek = 7; }else{ dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1; } return Integer.toString(dayForWeek); } /** * 获取今日的日期,举例:20141110,20140110 * @return,日期的字符串 */ public static String getNowDateString() { Date date = new Date(); //年份 int year = date.getYear() + 1900; //月份 int month = date.getMonth() + 1; //日期 int day = date.getDate(); String date_string ; if(month < 10) { if(day < 10) { date_string = Integer.toString(year)+"0"+Integer.toString(month)+"0"+Integer.toString(day); } else { date_string = Integer.toString(year)+"0"+Integer.toString(month)+Integer.toString(day); } } else { if(day < 10) { date_string = Integer.toString(year)+Integer.toString(month)+"0"+Integer.toString(day); } else { date_string = Integer.toString(year)+Integer.toString(month)+Integer.toString(day); } } return date_string; } /** * 获取今日包含时间点的日期,举例:2014020202(2014年2月2号2点) * @return,日期的字符串 */ public static String getNowDateAndHourString() { String date_string ; String month_str; String day_str; String hour_str; Date date = new Date(); //年份 int year = date.getYear() + 1900; //月份 int month = date.getMonth() + 1; //日期 int day = date.getDate(); //时间 int hour = date.getHours(); //处理月份 if(month < 10) { month_str=0+Integer.toString(month); } else { month_str=Integer.toString(month); } //处理日期 if(day < 10) { day_str=0+Integer.toString(day); } else { day_str=Integer.toString(day); } //处理时间 if(hour < 10) { hour_str=0+Integer.toString(hour); } else { hour_str=Integer.toString(hour); } date_string = year+month_str+day_str+hour_str; return date_string; } /** * 函数功能是根据当前的日期,当step为正数时,算出加上step后的日期;step为负数时,算出减去step后的日期 * @param step:要加或者减的天数 * @return :在当前日期的基础上加上或者减去step后的日期 */ public static String getDate(int step) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, step); SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd"); String str = sf.format(cal.getTime()); System.out.print(str); return str; } /** *根据距离今天的日期差,得到是第几周周几:举例说今天是本年的第三周周四,那么getWeek(1)得到便是"第三周>周五" * @param step * @return */ public static String getWeek(int step) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, step); int week = cal.get(cal.WEEK_OF_YEAR); int day = cal.get(cal.DAY_OF_WEEK); if(day == 1) { week = week -1; } day = day-1; String [] day_of_week = {"日","一","二","三","四","五","六","日"}; if(week == 0) { return "周"+day_of_week[day]; } String str = "第"+week+"周"+">周"+day_of_week[day]; CommonUtils.LogWuwei(tag, "getWeek week is "+str+"day is "+day); return str; } /** * 根据距离今天的日期差,得到是周几:举例说今天是周二,那么getWeekDay(-1)得到的便是“周一” * @param step * @return */ public static String getWeekDay(int step) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, step); int week = cal.get(cal.WEEK_OF_YEAR); int day = cal.get(cal.DAY_OF_WEEK); if(day == 1) { week = week -1; } day = day-1; String [] day_of_week = {"日","一","二","三","四","五","六","日"}; return "周"+day_of_week[day]; } /** * 获取当前日期是星期几<br> * * @param dt * @return 当前日期是星期几 */ public static String getWeekOfDate() { Date date=new Date(); SimpleDateFormat dateFm = new SimpleDateFormat("EEEE"); dateFm.format(date); String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; Calendar cal = Calendar.getInstance(); cal.setTime(date); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) w = 0; CommonUtils.LogWuwei(tag,"今天是 "+weekDays[w]); return weekDays[w]; } /** * 根据日期获取时间戳 * @param normalDate 20141228 * @return 1419696000 */ public static long getTimeStamp(Long normalDate) { Long detail_date_tmp = normalDate; String date_str = Long.toString(detail_date_tmp); String year = date_str.substring(0, 4); String month = date_str.substring(4, 6); String day = date_str.substring(6, 8); //CommonUtils.LogWuwei(tag,"detail_date_tmp is "+detail_date_tmp+" "+ year+":"+month+":"+day); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date date; Calendar cal= Calendar.getInstance(); String parseStr = year+"-"+month+"-"+day; try { date = df.parse(parseStr); cal = Calendar.getInstance(); cal.setTime(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } long timeStamp = cal.getTimeInMillis()/1000; CommonUtils.LogWuwei(tag, "timeStamp is "+timeStamp); return timeStamp; } /** * 将”20141224” 解析成“2014年12月24日” * @param date * @return */ public static String parseDate(Long date) { int year = (int)(date/10000); int month = (int)(date%10000)/100; int day = (int)(date%10000)%100; return year+"年"+month+"月"+day+"日"; } /** * 获取当前日期是星期几<br> * * @param dt * @return 当前日期是星期几 */ public static int getIntWeekOfDate() { Date date=new Date(); SimpleDateFormat dateFm = new SimpleDateFormat("EEEE"); dateFm.format(date); int[] weekDays = {7,1,2,3,4,5,6}; Calendar cal = Calendar.getInstance(); cal.setTime(date); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) w = 0; // CommonUtils.LogWuwei(tag,"今天是 "+weekDays[w]); return weekDays[w]; } /** * 根据今天是周几获取上周周一到周日的日期 */ public static String[] getLastWeekDate() { int today = CommonUtils.getIntWeekOfDate();//获取今天周几 String baseDate = "";//初始化上周一的日期 String date[] = {null,null,null,null,null,null,null}; int index = 0; switch (today)////得到上周一的日期 { case 1: baseDate = CommonUtils.getDate(-7); index = -7; break; case 2: baseDate = CommonUtils.getDate(-8); index = -8; break; case 3: baseDate = CommonUtils.getDate(-9); index = -9; break; case 4: baseDate = CommonUtils.getDate(-10); index = -10; break; case 5: baseDate = CommonUtils.getDate(-11); index = -11; break; case 6: baseDate = CommonUtils.getDate(-12); index = -12; break; case 7: baseDate = CommonUtils.getDate(-13); index = -13; break; } for(int i=0;i<7;i++) { date[i] = CommonUtils.getDate(index+i); int k = i+1; CommonUtils.LogWuwei(tag,"上周"+k+" is "+date[i]); } return date; } /** * 根据本周周一到周日的日期 */ public static String[] getThisWeekDate() { int today = CommonUtils.getIntWeekOfDate();//获取今天周几 String date[] = {null,null,null,null,null,null,null}; int index = 0; switch (today)////得到上周一的日期 { case 1: index = 0; break; case 2: index = -1; break; case 3: index = -2; break; case 4: index = -3; break; case 5: index = -4; break; case 6: index = -5; break; case 7: index = -6; break; } for(int i=0;i<7;i++) { date[i] = CommonUtils.getDate(index+i); int k = i+1; CommonUtils.LogWuwei(tag,"本周"+k+" is "+date[i]); } return date; } /** * 获取下周周一到周日的日期 */ public static String[] getNextWeekDate() { int today = CommonUtils.getIntWeekOfDate();//获取今天周几 String date[] = {null,null,null,null,null,null,null}; int index = 0; switch (today)////得到下周的日期 { case 1: index = 7; break; case 2: index = 6; break; case 3: index = 5; break; case 4: index = 4; break; case 5: index = 3; break; case 6: index = 2; break; case 7: index = 1; break; } for(int i=0;i<7;i++) { date[i] = CommonUtils.getDate(index+i); int k = i+1; CommonUtils.LogWuwei(tag,"下周"+k+" is "+date[i]); } return date; } /** * 从今天起往前寻找8周内每个周一的日期 */ public static long[] checkRecentEfficientDataFromToday() { long modayData[] = new long[8]; int today = getIntWeekOfDate();//获取今天是周几 int step = 0; switch (today) { case 1: step = 0; break; case 2: step = -1; break; case 3: step = -2; break; case 4: step = -3; break; case 5: step = -4; break; case 6: step = -5; break; case 7: step = -6; break; } for(int i=0;i<8;i++) { modayData[i] = Long.parseLong(getDate(step-7*i)); CommonUtils.LogWuwei(tag, "monday date is "+modayData[i]); } return modayData; } /** * 获取到本周一的日期 * @return */ public static long getThisMonday() { int today = getIntWeekOfDate();//获取今天是周几 long monday = (long)0; int step = 0; switch (today) { case 1: step = 0; break; case 2: step = -1; break; case 3: step = -2; break; case 4: step = -3; break; case 5: step = -4; break; case 6: step = -5; break; case 7: step = -6; break; } monday = Long.parseLong(getNowDateString())+step; return monday; } /** * 获取到上周的周一是几号 * @return */ public static long getLastMonday() { int today = getIntWeekOfDate();//获取今天是周几 long monday = (long)0; int step = 0; switch (today) { case 1: step = 0; break; case 2: step = -1; break; case 3: step = -2; break; case 4: step = -3; break; case 5: step = -4; break; case 6: step = -5; break; case 7: step = -6; break; } monday = Long.parseLong(getNowDateString())-7+step; return monday; } /** * 获取到下周的周一是几号 * @return */ public static long getNextMonday() { int today = getIntWeekOfDate();//获取今天是周几 long monday = (long)0; int step = 0; switch (today) { case 1: step = 0; break; case 2: step = -1; break; case 3: step = -2; break; case 4: step = -3; break; case 5: step = -4; break; case 6: step = -5; break; case 7: step = -6; break; } monday = Long.parseLong(getNowDateString())+7+step; return monday; }View Code
相关文章推荐
- ios根据日期获取年月日分秒及常用操作(问题)
- Java根据出生年月日获取到当前日期的年月日
- C# 根据注册表获取当前用户的常用目录整理
- Util工具类 获取指定月份的天数以及最后一天的日期
- JavaScript 遗漏知识再整理;错误处理,类型转换以及获取当前时间、年份、月份、日期;
- 根据年月以及月中周次,获取该周开始,结束日期
- Java实现根据输入的日期以及天数,获取此日期之后的天数的工作日
- js根据某个日期,获取该日期的前一个星期六以及后一个星期五
- 自己整理的常用字符串校验和日期格式化工具类
- 根据日期获取周几
- 判断日期是否过期,以及根据日期判断周几
- Oracle function实现根据输入的日期以及天数,获取此日期之后的天数的工作日
- 根据weekNo(本周为0,上周为-1,下周为1),week(Calendar.XXX)获取日期,以及根据weekNo和week判断今天是否是该日期
- 获取字符串格式日期的年月日以及转换为TimeStamp类型的方法
- js 根据年月获取当月有多少天_js获取农历日期_及Js其它常用有用函数
- C语言判断日期有效性以及根据年月日输出星期几
- java 获取日期的前N天的日期以及Calendar类的常用方法常用属性
- android初学------根据日期时间字符串返回date数据 获取年月日
- 根据输入的日期获取人民币汇率
- MySQL下数据表混乱的字符编码处理以及一些处理字符编码时的常用命令整理