| 
					
				 | 
			
			
				@ -0,0 +1,927 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.care.util; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.sql.Timestamp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.DateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.ParsePosition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class DateUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String HH_MM = "HH:mm"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String HH_MM_SS = "HH:mm:ss"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YY = "yy"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYYMM = "yyyyMM"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYYMMDD = "yyyyMMdd"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYY_MM_DD = "yyyy-MM-dd"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYY_MM_DD_HH = "yyyy-MM-dd HH"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String YYYY_M_D_HH_MM_SS = "yyyy/M/d HH:mm:ss"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 时间格式转中文格式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String dateToChinese(Date date) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter =   new SimpleDateFormat( "yyyy年MM月dd日 EEEEaaaa hh:mm", Locale.CHINA); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/*public static void main(String[] args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					   System.out.print(dateToChinese(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					}*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 字符串转时间格式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date strToDate(String strDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (StringUtils.isEmpty(strDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int length = strDate.length(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if(strDate.contains("/")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								strDate = strDate.replace("/","-"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if(strDate.contains("-")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if(length == 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									 return strToDate(strDate,YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								else if(length == 19) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									return strToDate(strDate,YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if(length == 8) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									return strToDate(strDate,YYYYMMDD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								else if(length == 14) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									return strToDate(strDate,YYYYMMDDHHMMSS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					  * 获取现在时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					  *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					  * @return 返回时间类型 yyyy-MM-dd HH:mm:ss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getNowDate() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String dateString = formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ParsePosition pos = new ParsePosition(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.parse(dateString, pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取现在时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return返回短时间格式 yyyy-MM-dd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getNowDateShort() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String dateString = formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return strToDate(dateString, YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取现在时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getStringDate() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取现在时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getStringDate(String format) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(format); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取现在时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 返回短时间字符串格式yyyy-MM-dd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getStringDateShort() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取时间 小时:分;秒 HH:mm:ss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getTimeShort() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param strDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date strToDateLong(String strDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (StringUtils.isEmpty(strDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ParsePosition pos = new ParsePosition(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.parse(strDate, pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date strToDateShort(String strDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (StringUtils.isEmpty(strDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ParsePosition pos = new ParsePosition(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.parse(strDate, pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param dateDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String dateToStrLong(Date dateDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (dateDate == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(dateDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String dateToStrNoSecond(Date dateDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (dateDate == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(dateDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 将长时间格式时间转换为字符串 yyyy-MM-dd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param dateDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String dateToStrShort(Date dateDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (dateDate == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(dateDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 将短时间格式时间转换为字符串 yyyy-MM-dd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String dateToStr(Date dateDate, String format) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (dateDate == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(format); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.format(dateDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 将短时间格式字符串转换为时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param strDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date strToDate(String strDate, String format) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (StringUtils.isEmpty(strDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(format); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ParsePosition pos = new ParsePosition(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.parse(strDate, pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date strToDateAppendNowTime(String strDate, String format) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (StringUtils.isEmpty(strDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						strDate += " " + getTimeShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(format); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ParsePosition pos = new ParsePosition(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return formatter.parse(strDate, pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到现在时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getNow() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return currentTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 提取一个月中的最后一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param day 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getLastDate(long day) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						long date_3_hm = date.getTime() - 3600000 * 34 * day; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date date_3_hm_date = new Date(date_3_hm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return date_3_hm_date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到现在时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 字符串 yyyyMMdd HHmmss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getStringToday() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String dateString = formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return dateString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到现在小时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getHour() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String dateString = formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String hour; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						hour = dateString.substring(11, 13); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return hour; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到现在分钟 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getTime() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String dateString = formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String min; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						min = dateString.substring(14, 16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return min; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sformat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *            yyyyMMddhhmmss 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getUserDate(String sformat) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date currentTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(sformat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String dateString = formatter.format(currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return dateString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getTwoHour(String st1, String st2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String[] kk = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String[] jj = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						kk = st1.split(":"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						jj = st2.split(":"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return "0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if ((y - u) > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return y - u + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return "0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到二个日期间的间隔天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getTwoDay(String sj1, String sj2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat myFormatter = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						long day = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Date date = myFormatter.parse(sj1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Date mydate = myFormatter.parse(sj2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return day + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 时间前推或后推分钟,其中JJ表示分钟. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getPreTime(String sj1, String jj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String mydate1 = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Date date1 = format.parse(sj1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							date1.setTime(Time * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							mydate1 = format.format(date1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return mydate1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 时间前推或后推天数(负数前推正数后推) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * date 基准时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getPreDays(Date date, int days) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date day = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.setTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.add(Calendar.DATE, days); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							day = c.getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return day; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到一个时间延后或前移几分钟的时间,nowdate为时间,delay为前移或后延的分钟数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getNextMin(Date date, int delay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Calendar cal = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							cal.setTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							cal.add(Calendar.MINUTE, delay); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return cal.getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getNextDay(String nowdate, int delay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String mdate = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Date d = strToDate(nowdate, YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							long myTime = (d.getTime() / 1000) + delay * 24 * 60 * 60; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							d.setTime(myTime * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							mdate = format.format(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return mdate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// public static String getNextDay(Date d, int delay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// String mdate = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// long myTime = (d.getTime() / 1000) + delay * 24 * 60 * 60; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// d.setTime(myTime * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// mdate = format.format(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// return mdate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getNextDay(Date d, int days) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.setTime(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.add(Calendar.DATE, days); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return dateToStrShort(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getNextMonth(Date d, int months) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.setTime(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.add(Calendar.MONTH, months); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return dateToStrShort(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getNextYear(Date d, int year) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.setTime(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.add(Calendar.YEAR, year); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return dateToStrShort(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取本月第一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getCurMonthFirstDayShort(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return dateToStrShort(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 判断是否润年 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param ddate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static boolean isLeapYear(String ddate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 * 3.能被4整除同时能被100整除则不是闰年 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date d = strToDate(ddate, YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						gc.setTime(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int year = gc.get(Calendar.YEAR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if ((year % 400) == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if ((year % 4) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if ((year % 100) == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 返回美国时间格式 26 Apr 2006 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param str 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getEDate(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ParsePosition pos = new ParsePosition(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date strtodate = formatter.parse(str, pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String j = strtodate.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String[] k = j.split(" "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return k[2] + k[1].toUpperCase() + k[5].substring(2, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取一个月的最后一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param dat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String str = dat.substring(0, 8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String month = dat.substring(5, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int mon = Integer.parseInt(month); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str += "31"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str += "30"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (isLeapYear(dat)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								str += "29"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								str += "28"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 判断二个时间是否在同一个周 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static boolean isSameWeekDates(Date date1, Date date2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar cal1 = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar cal2 = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						cal1.setTime(date1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						cal2.setTime(date2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (0 == subYear) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							// 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 产生周序列,即得到当前时间所在的年度是第几周 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getSeqWeek() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(Locale.CHINA); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (week.length() == 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							week = "0" + week; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String year = Integer.toString(c.get(Calendar.YEAR)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return year + week; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sdate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getWeek(String sdate, String num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 再转换为时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date dd = DateUtil.strToDate(sdate, YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.setTime(dd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (num.equals("1")) // 返回星期一所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if (num.equals("2")) // 返回星期二所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if (num.equals("3")) // 返回星期三所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if (num.equals("4")) // 返回星期四所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if (num.equals("5")) // 返回星期五所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if (num.equals("6")) // 返回星期六所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if (num.equals("0")) // 返回星期日所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取2个时间点的工作日天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param startDate 开始时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param endDate 结束时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static int getDutyDays(Date startDate, Date endDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int result = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date  startTime = new Date(startDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						while (startTime.compareTo(endDate) <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (startTime.getDay() != 6 && startTime.getDay() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								result++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startTime.setDate(startTime.getDate() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 根据一个日期,返回是星期几的字符串 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sdate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getWeek(String sdate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 再转换为时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date date = DateUtil.strToDate(sdate, YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.setTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// int hour=c.get(Calendar.DAY_OF_WEEK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// hour中存的就是星期几了,其范围 1~7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 1=星期日 7=星期六,其他类推 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return new SimpleDateFormat("EEEE").format(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getWeekStr(String sdate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String str = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						str = DateUtil.getWeek(sdate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if ("1".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str = "星期日"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if ("2".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str = "星期一"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if ("3".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str = "星期二"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if ("4".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str = "星期三"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if ("5".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str = "星期四"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if ("6".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str = "星期五"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if ("7".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							str = "星期六"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 两个时间之间的天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static long getDays(String date1, String date2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (date1 == null || date1.equals("")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (date2 == null || date2.equals("")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 转换为标准时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat myFormatter = new SimpleDateFormat(YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date date = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date mydate = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							date = myFormatter.parse(date1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							mydate = myFormatter.parse(date2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return day; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 返回两个日期相差的天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static long getDays(Date date1, Date date2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (date1 == null || date2 == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						long day = (date1.getTime() - date2.getTime()) / (24 * 60 * 60 * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return day; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 此函数返回该日历第一行星期日所在的日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sdate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getNowMonth(String sdate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 取该时间所在月的一号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						sdate = sdate.substring(0, 8) + "01"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 得到这个月的1号是星期几 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date date = DateUtil.strToDate(sdate, YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.setTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int u = c.get(Calendar.DAY_OF_WEEK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String newday = DateUtil.getNextDay(sdate, 1 - u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return newday; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param k 表示是取几位随机数,可以自己定 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getNo(int k) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return getUserDate("yyyyMMddhhmmss") + getRandom(k); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 返回一个随机数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getRandom(int i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Random jjj = new Random(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (i == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String jj = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						for (int k = 0; k < i; k++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							jj = jj + jjj.nextInt(9); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return jj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 根据用户生日计算年龄 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static int getAgeByBirthday(Date birthday) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int age = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (birthday == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return age; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String birth = new SimpleDateFormat("yyyyMMdd").format(birthday); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int year = Integer.valueOf(birth.substring(0, 4)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int month = Integer.valueOf(birth.substring(4, 6)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int day = Integer.valueOf(birth.substring(6)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Calendar cal = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							age = cal.get(Calendar.YEAR) - year; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							//周岁计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (cal.get(Calendar.MONTH) < (month - 1) || (cal.get(Calendar.MONTH) == (month - 1) && cal.get(Calendar.DATE) < day)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								age--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return age; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *  字符串转时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param str 时间字符串 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param eg 格式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date stringToDate(String str, String eg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						DateFormat format = new SimpleDateFormat(eg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date date = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (str != null && !"".equals(str)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								date = format.parse(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static int getNowMonth(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar cal = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return cal.get(Calendar.MONTH)+1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static int getNowYear(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar cal = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return cal.get(Calendar.YEAR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取周一 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getMondayOfThisWeek() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (day_of_week == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							day_of_week = 7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.add(Calendar.DATE, -day_of_week + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return df2.format(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到本周周日 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return yyyy-MM-dd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getSundayOfThisWeek() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (day_of_week == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							day_of_week = 7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.add(Calendar.DATE, -day_of_week + 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return df2.format(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取当月第一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getFristDayOfMonth() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 获取前月的第一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.add(Calendar.MONTH, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String first = format.format(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return format.format(c.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取当月最后一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getLastDayOfMonth(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 获取前月的第一天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar ca = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return format.format(ca.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static int getSignYear(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar ca = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(getNowMonth()>=4){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return getNowYear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return getNowYear()-1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 计算预产期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 末次月经开始日期(第一天),月份+9,日期+7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getDueDate(Date date){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar cal = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						cal.setTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						cal.add(Calendar.MONTH,9); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						cal.add(Calendar.DAY_OF_YEAR,7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return cal.getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 计算产检时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param day 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getPrenatalInspectorDate(Date date,Integer day){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar cal = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						cal.setTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						cal.add(Calendar.DAY_OF_YEAR,day); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return cal.getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 转换日期字符串为Timestamp YYYY-MM-DD HH:MM:SS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Timestamp fomrmatStringToTimeStamp(String dateStr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Timestamp ts = Timestamp.valueOf(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return ts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取当前时间的Timestamp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Timestamp getNowTimestamp(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Timestamp nousedate = new Timestamp(date.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return nousedate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取周一 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String getSundayOfThisDate(Date date) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SimpleDateFormat df2 = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return df2.format(getSundayOfThisDateToDate(date)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 得到本周周日 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return yyyy-MM-dd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static Date getSundayOfThisDateToDate(Date date) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Calendar c = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.setTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (day_of_week == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							day_of_week = 7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						c.add(Calendar.DATE, -day_of_week + 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return c.getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |