Java-DateHandler工具类
来源:互联网 发布:linux sftp 默认端口 编辑:程序博客网 时间:2024/05/21 08:51
import java.util.*;import java.text.*;public class DateHandler { public DateHandler() { } public static int openDay=5; private String iDate=""; private int iYear; private int iMonth; private int iDay;// iDateTime = 2002-01-01 23:23:23 public void setDate(String iDateTime){ this.iDate=iDateTime.substring(0,10); } public String getDate(){ return this.iDate; } public int getYear(){ iYear=Integer.parseInt(iDate.substring(0,4)); return iYear; } public int getMonth(){ iMonth=Integer.parseInt(iDate.substring(5,7)); return iMonth; } public int getDay(){ iDay=Integer.parseInt(iDate.substring(8,10)); return iDay; } public static String subDate(String date){ return date.substring(0,10); } /** * 计算是否是季度末 * @param date * @return */ public static boolean isSeason(String date){ int getMonth = Integer.parseInt(date.substring(5,7)); boolean sign = false; if (getMonth==3) sign = true; if (getMonth==6) sign = true; if (getMonth==9) sign = true; if (getMonth==12) sign = true; return sign; } /** * 计算从现在开始几天后的时间 * @param afterDay * @return */ public static String getDateFromNow(int afterDay){ GregorianCalendar calendar = new GregorianCalendar(); Date date = calendar.getTime(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)+afterDay); date = calendar.getTime(); return df.format(date); } /** * 带格式 * @param afterDay * @param format_string * @return */ public static String getDateFromNow(int afterDay, String format_string) { Calendar calendar = Calendar.getInstance(); Date date = null; DateFormat df = new SimpleDateFormat(format_string); calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + afterDay); date = calendar.getTime(); return df.format(date); } /** * 得到当前时间,用于文件名,没有特殊字符,使用yyyyMMddHHmmss格式 * @param afterDay * @return * by tim */ public static String getNowForFileName(int afterDay){ GregorianCalendar calendar = new GregorianCalendar();// Date date = calendar.getTime(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)+afterDay); Date date = calendar.getTime(); return df.format(date); }//==============================================================================//比较日期,与现在-N天的日期对比 -1 0 1//============================================================================== public int getDateCompare(String limitDate,int afterDay){ GregorianCalendar calendar = new GregorianCalendar(); Date date = calendar.getTime(); calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)+afterDay); date = calendar.getTime();//date是新来的天数,跟今天相比的天数 iDate=limitDate; calendar.set(getYear(),getMonth()-1,getDay()); Date dateLimit = calendar.getTime(); return dateLimit.compareTo(date); }//==============================================================================//比较日期,与现在的日期对比 //============================================================================== public int getDateCompare(String limitDate){ iDate=limitDate; GregorianCalendar calendar = new GregorianCalendar(); calendar.set(getYear(),getMonth()-1,getDay()); Date date = calendar.getTime(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date nowDate = new Date(); return date.compareTo(nowDate); }//==============================================================================//比较日期,与现在的日期对比 得到天数//============================================================================== public long getLongCompare(String limitDate){ iDate=limitDate; GregorianCalendar calendar = new GregorianCalendar(); calendar.set(getYear(),getMonth()-1,getDay()); Date date = calendar.getTime(); long datePP=date.getTime(); Date nowDate = new Date(); long dateNow = nowDate.getTime(); return ((dateNow-datePP)/(24*60*60*1000)); }//==============================================================================//比较日期,与现在的日期对比 得到信息//============================================================================== public String getStringCompare(String limitDate,int openDay){ iDate=limitDate; GregorianCalendar calendar = new GregorianCalendar(); calendar.set(getYear(),getMonth()-1,getDay()); Date date = calendar.getTime(); long datePP=date.getTime(); Date nowDate = new Date(); long dateNow = nowDate.getTime(); long overDay = ((dateNow-datePP)/(24*60*60*1000)); String info=""; return info; }//==============================================================================//比较日期,与现在的日期对比 得到信息//============================================================================== public String getPicCompare(String limitDate,int openDay){ iDate=limitDate; GregorianCalendar calendar = new GregorianCalendar(); calendar.set(getYear(),getMonth()-1,getDay()); Date date = calendar.getTime(); long datePP=date.getTime(); Date nowDate = new Date(); long dateNow = nowDate.getTime(); long overDay = ((dateNow-datePP)/(24*60*60*1000)); String info=""; if (overDay>0){ info="plaint1.gif"; } if (overDay==0){ info="plaint2.gif"; } if (overDay<0&&overDay>=-openDay){ info="plaint2.gif"; } if (overDay<-openDay){ info="plaint3.gif"; } if (overDay<-150){ info="plaint3.gif"; } return info; } /** * method diffdate 计算两个日期间相隔的日子 * @param beforDate 格式:2005-06-20 * @param afterDate 格式:2005-06-21 * @return */ public static int diffDate(String beforeDate,String afterDate){ String[] tt = beforeDate.split("-"); Date firstDate = new Date(Integer.parseInt(tt[0]),Integer.parseInt(tt[1])-1,Integer.parseInt(tt[2])); tt = afterDate.split("-"); Date nextDate = new Date(Integer.parseInt(tt[0]),Integer.parseInt(tt[1])-1,Integer.parseInt(tt[2])); return (int)(nextDate.getTime()-firstDate.getTime())/(24*60*60*1000); } /** * 获取今天的日期的字符串 * @return */ public static String getToday(){ Calendar cld=Calendar.getInstance(); java.util.Date date=new Date(); cld.setTime(date); int intMon=cld.get(Calendar.MONTH)+1; int intDay=cld.get(Calendar.DAY_OF_MONTH); String mons=String.valueOf(intMon); String days=String.valueOf(intDay); if(intMon<10) mons="0"+String.valueOf(intMon); if(intDay<10) days="0"+String.valueOf(intDay); return String.valueOf(cld.get(Calendar.YEAR))+"-"+mons+"-"+days; } /** * 获取当前月份 * @return 返回字符串 格式:两位数 */ public static String getCurrentMonth(){ String strmonth = null; Calendar cld = Calendar.getInstance(); java.util.Date date = new Date(); cld.setTime(date); int intMon=cld.get(Calendar.MONTH) + 1; if(intMon<10) strmonth = "0" + String.valueOf(intMon); else strmonth = String.valueOf(intMon); date = null; return strmonth; }// public static String getCurrMonth()// {// Calendar cld=Calendar.getInstance();// java.util.Date date=new Date();// cld.setTime(date);// int intMon=cld.get(Calendar.MONTH)+1;//// return String.valueOf(intMon).toString();// } /** * 获取昨天的日期的字符串 */ public static String getYestoday(){ Calendar cld = Calendar.getInstance(); java.util.Date date = new Date(); cld.setTime(date); cld.add(Calendar.DATE,-1); int intMon = cld.get(Calendar.MONTH)+1; int intDay = cld.get(Calendar.DAY_OF_MONTH); String mons = String.valueOf(intMon); String days = String.valueOf(intDay); if(intMon < 10) mons="0" + String.valueOf(intMon); if(intDay < 10) days = "0" + String.valueOf(intDay); return String.valueOf(cld.get(Calendar.YEAR)) + "-" + mons + "-" + days; } /** * 此函数用来计算员工的工作天数,如在使用期和离职期该月份的工作日 * 输入(离职日期,-1)可得该月工作天数 时间以2002-12-14为准 * 输入(入司时间,1)可的该月工作天数 */ public static int getWorkDay(String date , int sign){ int month=0; int week=0; int workDay=0; Calendar rightNow = Calendar.getInstance(); DateHandler dateOver=new DateHandler(); dateOver.setDate(date); rightNow.set(rightNow.YEAR,dateOver.getYear()); rightNow.set(rightNow.MONTH,dateOver.getMonth()-1); rightNow.set(rightNow.DATE,dateOver.getDay()); month = rightNow.get(rightNow.MONTH); while(rightNow.get(rightNow.MONTH)==month){ week=rightNow.get(Calendar.DAY_OF_WEEK); if (week==1||week==7){ }else{ workDay++; System.out.println(rightNow.get(rightNow.DATE)); } rightNow.add(rightNow.DATE,sign); } return workDay; } public static void main(String args[]){ System.out.println(DateHandler.isSeason("2002-03-02"));// String cc ="100.123.342";// System.out.println(cc.indexOf(".",3));//// StringTokenizer st=new StringTokenizer(cc,".");//// if (st.countTokens()!=2) {//// String state = st.nextToken();// String event = st.nextToken();// System.out.println(""+event); String strDate = DateHandler.getDateFromNow(0,"yyyy-MM-dd HH:mm:ss"); System.out.println("date:" + strDate); System.out.println("15:" + strDate.substring(0,16)); Date firstDate = new Date(2006,11,14,18,3,0); Date nextDate = new Date(2006,11,15,18,2,0); System.out.println("date's num: " + (int)(nextDate.getTime()-firstDate.getTime())/(24*60*60*1000));// } //System.out.println(DateHandler.getWorkDay("2002-11-14",-1)); }}
阅读全文
0 0
- Java-DateHandler工具类
- DateHandler
- java文件工具类
- java日期工具类
- java 绝对路径工具类
- java工具类
- Java 数据处理工具类
- java日期工具类
- java工具类Assert
- 一些Java工具类
- anroid&java工具类
- java StringUtil 工具类
- java身份证号工具类
- java 日期工具类
- Java开发工具类
- java 加密工具类
- java集合工具类
- java时间工具类
- extern "C"
- # 28. Implement strStr()
- Tyk在Ubuntu上安装
- iOS 注释规范及appledoc文档导出记录
- BouncingBallView 碰撞的小球
- Java-DateHandler工具类
- centos6.8 安装mysql 5.6
- js合并table单元格
- HTML5中meta属性的使用详解
- qt的问题
- Java-DealString工具类
- 在vmware vsphere虚拟机上添加USB设备或加密狗
- java添加HTTP基本认证(Basic Authentication)
- swift-- 数组