zoukankan      html  css  js  c++  java
  • java 常用时间操作类,计算到期提醒,N年后,N月后的日期

    package com.zjjerp.tool;
     
    import java.text.ParseException;
    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
     
    /**
     *    @Author:Demom
     *    @Date:2013-8-2,上午9:22:05
     */
    public class GetDateTimeTools {
     
        /***
         * 得到yyyy-MM-dd时间格式
         * @param date
         * @return
         */
        public static String getYYYYMMDD(Date date){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.format(date);
        }
        /***
         * 得到yyyy-MM-dd hh:mm:ss时间格式
         * @param date
         * @return
         */
        public static String getYYYYMMDDHHMMSS(Date date){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            return sdf.format(date);
        }
        //获取当月的的10号
        public static String getnowMonthtenday(){
            Calendar cal = Calendar.getInstance();
            int month = cal.get(Calendar.MONTH) + 1;
            int year = cal.get(Calendar.YEAR);
            StringBuffer sb =new StringBuffer();
            sb.append(year);
            sb.append("-");
            if(month<10){
                sb.append("0");
                sb.append(month);
            }else{
                sb.append(month);
            }
            sb.append("-10");
            return sb.toString();
        }
        //获取当前月的下一个月的10号
        public static String getnextMonthtenday(){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            String strDate = sdf.format(new Date());
            int index = strDate.indexOf(" ");
            String str1 = strDate.substring(0, index);
            String[] str2 = str1.split("-");
            String nextDay="";
            if(str2[1]!="12"){
                int Month = Integer.parseInt(str2[1])+1;
                nextDay=str2[0]+"-"+Month+"-"+"10";
            }
            if(str2[1]=="12" || "12".equals(str2[1])){
                int Month = 1;
                int Year = Integer.parseInt(str2[0])+1;
                nextDay = Year+"-"+Month+"-"+"10";
            }
            return nextDay;
        }
        //获取当前年
        public static int getCurrentYear(){
            Calendar cal = Calendar.getInstance();
            int month = cal.get(Calendar.MONTH) + 1;
            int year = cal.get(Calendar.YEAR);
            return year;
        }
        //获取当前yue
        public static int getCurrentMonth(){
            Calendar cal = Calendar.getInstance();
            int month = cal.get(Calendar.MONTH) + 1;
            return month;
        }
        /**
         * 以上个月为时间轴,获取上个月的时间
         * @param status(0  代表获取月的1号,1代表获取月末)
         * @return
         */
        public static String getLastMonthDay(int status) { 
            Calendar cal = Calendar.getInstance(); 
            Date date = new Date(); 
            cal.setTime(date); 
            int year = 0; 
            int month = cal.get(Calendar.MONTH); // 上个月月份  
            String newMonth="";
           //设置年月  
            if (month == 0) { 
                year = cal.get(Calendar.YEAR) - 1; 
                month = 12; 
                newMonth=""+month;
            } else { 
                if(month<10){
                    newMonth="0"+String.valueOf(month);
                }else{
                    newMonth=String.valueOf(month);
                }
                year = cal.get(Calendar.YEAR); 
            } 
            //设置天数  
            String temp=year + "-" + newMonth.toString();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); 
            Date d = null; 
            try { 
                d = format.parse(temp); 
            } catch (ParseException e) { 
                // TODO Auto-generated catch block  
                e.printStackTrace(); 
            } 
            cal.setTime(d); 
           
            
            int day =cal.getActualMaximum(Calendar.DAY_OF_MONTH);
            if(status==1){
                String endDay = year + "-" + newMonth + "-" + day; 
                return endDay;             
            }else{
                String endDay = year + "-" + newMonth + "-" + "01"; 
                return endDay; 
            }
        } 
        /**
         * 以上个月为时间轴,获取下个月的时间
         * @param status(0  代表获取月的1号,1代表获取月末)
         * @return
         */
        public static String getNextMonthDay(int status) { 
                Calendar cal = Calendar.getInstance(); 
                int day=cal.get(Calendar.DATE);
                SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
                String timestr= sdf.format(new Date());
                timestr=timestr.substring(0,8);
                if(status==1){
                    timestr+=String.valueOf(day);
                }else{
                    timestr+="01";
                }
                return timestr;
        } 
        /***
         * 以上个月为时间轴,获取当月的时间
         * @param status(0  代表获取月的1号,1代表获取月末)
         * @return
         */
        public static String getCurrMonthDay(int status) { 
            Calendar cal = Calendar.getInstance(); 
            Date date = new Date(); 
            cal.setTime(date); 
            int year = 0; 
            int month = cal.get(Calendar.MONTH); // 上个月月份  
            String newMonth="";
           //设置年月  
            if (month == 0) { 
                year = cal.get(Calendar.YEAR) - 1; 
                month = 12; 
                newMonth=""+month;
            } else { 
                if(month<10){
                    newMonth="0"+String.valueOf(month);
                }else{
                    newMonth=String.valueOf(month);
                }
                year = cal.get(Calendar.YEAR); 
            } 
            //设置天数  
            String temp=year + "-" + newMonth.toString();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); 
            Date d = null; 
            try { 
                d = format.parse(temp); 
            } catch (ParseException e) { 
                // TODO Auto-generated catch block  
                e.printStackTrace(); 
            } 
            cal.setTime(d); 
            int day =cal.getActualMaximum(Calendar.DAY_OF_MONTH);
            if(status==1){
                String endDay = year + "-" + newMonth + "-" + day; 
                return endDay;             
            }else{
                String endDay = year + "-" + newMonth + "-" + "01"; 
                return endDay; 
            }
            
        }
        //获取当月5号日前哦
        public static String getevery5day(){
            
            Calendar cal = Calendar.getInstance();
            int month = cal.get(Calendar.MONTH) + 1;
            int year = cal.get(Calendar.YEAR);
            StringBuffer sb =new StringBuffer();
            sb.append(year);
            sb.append("-");
            if(month<=10){
                sb.append("0");
                sb.append(month);
            }else{
                sb.append(month);
            }
            sb.append("-05");
            return sb.toString();
        }
        
        //合同续约
        public static String datexuyue(int year){
            
            SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
            String now = sdf.format(new Date());
            String[] nowStr = now.split("-");
            int year1 = Integer.parseInt(nowStr[0])+year;
            StringBuffer sb = new StringBuffer();
            sb.append(year1+"-"+nowStr[1]+"-"+nowStr[2]);
            return sb.toString();
        }
        //得到N天后的日期
         public static String getBeforeAfterDate(String datestr, int day) {  
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
                java.sql.Date olddate = null;  
                try {  
                    df.setLenient(false);  
                    olddate = new java.sql.Date(df.parse(datestr).getTime());  
                } catch (ParseException e) {  
                    throw new RuntimeException("日期转换错误");  
                }  
                Calendar cal = new GregorianCalendar();  
                cal.setTime(olddate);  
          
                int Year = cal.get(Calendar.YEAR);  
                int Month = cal.get(Calendar.MONTH);  
                int Day = cal.get(Calendar.DAY_OF_MONTH);  
          
                int NewDay = Day + day;  
          
                cal.set(Calendar.YEAR, Year);  
                cal.set(Calendar.MONTH, Month);  
                cal.set(Calendar.DAY_OF_MONTH, NewDay);  
          
                return new java.sql.Date(cal.getTimeInMillis()).toString();  
            }  
         
         
        //根据两个日期A、B计算AB之间的天数
            public static long getQuot(String time1, String time2){
                long quot = 0;  
                SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");  
                try {   Date date1 = ft.parse( time1 );
                Date date2 = ft.parse( time2 ); 
                quot = date1.getTime() - date2.getTime(); 
                quot = quot / 1000 / 60 / 60 / 24;  
                } catch (ParseException e) { 
                e.printStackTrace();
                }  
                return quot; 
                }
            //得到N月后的日期
            public static   String   GetSysDate(String   format,   String   StrDate,   int   year,   int   month,   
                    int   day)   {   
                Calendar   cal   =   Calendar.getInstance();   
                SimpleDateFormat   sFmt   =   new   SimpleDateFormat(format);   
                cal.setTime(sFmt.parse(   (StrDate),   new   ParsePosition(0)));   
                
                if   (day   !=   0)   {   
                cal.add(cal.DATE,   day);   
                }   
                if   (month   !=   0)   {   
                cal.add(cal.MONTH,   month);   
                }   
                if   (year   !=   0)   {   
                cal.add(cal.YEAR,   year);   
                
                }   
                return   sFmt.format(cal.getTime());   
                }   
     
            public static void main(String[] args) {  
                 System.out.println(GetSysDate("yyyy-MM-dd",   "2004-01-18",   0,   13,   0));         
            }  
    }
  • 相关阅读:
    分数加减法
    两点距离
    1的个数
    Swift 了解(1)
    ARC快速入门
    ARC基本概念
    autorelease注意事项
    autorelease基本使用
    NSTimer的使用
    如何监听控件的行为
  • 原文地址:https://www.cnblogs.com/xianz666/p/13685019.html
Copyright © 2011-2022 走看看