日期相关转换

来源:互联网 发布:java string拼接字符串 编辑:程序博客网 时间:2024/04/28 10:38
public static String getWeekDay(String date, String type) throws ParseException {String[] sWeekDates = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };String[] sWeekDatesE = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };Calendar cal = Calendar.getInstance();SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");cal.setTime(formatter.parse(date));if (type.equals("2"))return sWeekDates[cal.get(Calendar.DAY_OF_WEEK) - 1];else if (type.equals("3"))return sWeekDatesE[cal.get(Calendar.DAY_OF_WEEK) - 1];elsereturn String.valueOf(cal.get(Calendar.DAY_OF_WEEK) - 1);}


传入的日期格式为YYYY/MM/DD

type="1" 输出数字格式1,2,3,4,5,6,7

type="2" 输出中文,星期一等

type="3" 输出英文等

 

获得两个日期之间的天数

public static int getDays(String sBeginDate, String sEndDate) {Date startDate = java.sql.Date.valueOf(sBeginDate.replace('/', '-'));Date endDate = java.sql.Date.valueOf(sEndDate.replace('/', '-'));int iDays = (int) ((endDate.getTime() - startDate.getTime()) / 86400000L);return iDays;}


 

获得两个日期之间的月数,向下取整

public static int getMonths(String beginDate1, String endDate1) throws ParseException {Date beginDate = getDate(beginDate1);Date endDate = getDate(endDate1);Calendar former = Calendar.getInstance();Calendar latter = Calendar.getInstance();former.clear();latter.clear();boolean positive = true;if (beginDate.after(endDate)) {former.setTime(endDate);latter.setTime(beginDate);positive = false;} else {former.setTime(beginDate);latter.setTime(endDate);}int monthCounter = 0;while (former.get(Calendar.YEAR) != latter.get(Calendar.YEAR) || former.get(Calendar.MONTH) != latter.get(Calendar.MONTH)) {former.add(Calendar.MONTH, 1);monthCounter++;}if (positive)return monthCounter;elsereturn -monthCounter;}

获得两个日期之间的月数,向上取整

public static int getUpMonths(String date1, String date2) throws Exception {String beginDate = "";String endDate = "";int months_Between = 0;if (date1.equals(date2)) {return months_Between;} else if (date1.compareTo(date2) > 0) {endDate = date1;beginDate = date2;} else {beginDate = date1;endDate = date2;}Calendar beginCalendar = Calendar.getInstance();beginCalendar.setTime(getDate(beginDate));Calendar endCalendar = Calendar.getInstance();endCalendar.setTime(getDate(endDate));while (beginCalendar.get(Calendar.YEAR) != endCalendar.get(Calendar.YEAR)|| beginCalendar.get(Calendar.MONTH) != endCalendar.get(Calendar.MONTH)) {beginCalendar.add(Calendar.MONTH, 1);months_Between++;}if (!monthEnd(beginDate)) {String beginDays = beginDate.substring(8);String endDays = endDate.substring(8);if (endDays.compareTo(beginDays) > 0) {months_Between++;}}return months_Between;}


取两个日期之间的年数,向下取整

public static int getYears(String beginDate1, String endDate1) throws ParseException {Date beginDate = getDate(beginDate1);Date endDate = getDate(endDate1);Calendar former = Calendar.getInstance();Calendar latter = Calendar.getInstance();former.clear();latter.clear();boolean positive = true;if (beginDate.after(endDate)) {former.setTime(endDate);latter.setTime(beginDate);positive = false;} else {former.setTime(beginDate);latter.setTime(endDate);}int yearCounter = 0;while (former.get(Calendar.YEAR) != latter.get(Calendar.YEAR)) {former.add(Calendar.YEAR, 1);yearCounter++;}if (positive)return yearCounter;elsereturn -yearCounter;}


取两个日期之间的年数,向上取整

public static int getUpYears(String beginDate1, String endDate1) throws ParseException {Date beginDate = getDate(beginDate1);Date endDate = getDate(endDate1);Calendar former = Calendar.getInstance();Calendar latter = Calendar.getInstance();former.clear();latter.clear();boolean positive = true;if (beginDate.after(endDate)) {former.setTime(endDate);latter.setTime(beginDate);positive = false;} else {former.setTime(beginDate);latter.setTime(endDate);}int yearCounter = 0;while (former.get(Calendar.YEAR) != latter.get(Calendar.YEAR)) {former.add(Calendar.YEAR, 1);yearCounter++;}// 当天数前者小于后者时才加一,防止少计算一年if (positive && beginDate1.substring(5).compareTo(endDate1.substring(5)) < 0) {yearCounter++;} else if (!positive && beginDate1.substring(5).compareTo(endDate1.substring(5)) > 0) {yearCounter++;}if (positive)return yearCounter;elsereturn -yearCounter;}


日期比较

public static int compareDate(String date1, String date2) throws ParseException {Date date1d = DateFunctions.getDate(date1);Date date2d = DateFunctions.getDate(date2);if (date1d.after(date2d))return 1;if (date1d.before(date2d))return -1;elsereturn 0;}



 

0 0
原创粉丝点击