时间的转换和比较大小

/**
     * 比较两个时间的时分秒大小
     * @param startDay 开始时间
     * @param endDay 结束时间
     * @return 0表示时分秒相等 , 1表示开始时间的时分秒大于结束时间 , -1表示开始时间的时分秒小于结束时间 , 否则返回0
     * 
     */
    public static int compareHourMinuSecond(String startDay, String endDay)
    {
        
            long startSecond = countHourMinuSecondTotal(startDay);

            long endSecond = countHourMinuSecondTotal(endDay);

            if (startSecond > endSecond)
            {
                return 1;
            }
            else if (startSecond == endSecond)
            {
                return 0;
            }
            else if (startSecond < endSecond)
            {
                return -1;
            }
            return 0;
    }
        
    /**
     * 计算时分秒的总秒数
     * @param hour 小时
     * @param minute 分钟
     * @param second 秒
     * @return
     * 
     */
    public static long countTimeSecond(int hour, int minute, int second)
    {

        return hour * 3600 + minute * 60 + second;
    }
    
    /**
     * 获取时间中的时分秒的总秒数
     * @param time
     *          时间
     * @return
     * 
     */
    public static long countHourMinuSecondTotal(String time)
    {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try
        {
            Date d = sdf.parse(time);

            Calendar c = Calendar.getInstance();

            c.setTime(d);

            return countTimeSecond(c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), c.get(Calendar.SECOND));
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }

        return 0;

    }
    
    
    /**
     * 获取当前月的最后一天
     * @param time
     *          时间
     * @param isHourMinSecond
     *          是否显示时分秒
     * @return
     */
    public static String getLastDayOfMonth(String time, boolean isHourMinSecond)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = "";
        try
        {
            Date d = sdf.parse(time);
            Calendar cDay = Calendar.getInstance();
            cDay.setTime(d);
            final int lastDay = cDay.getActualMaximum(Calendar.DAY_OF_MONTH);
            Date lastDate = cDay.getTime();
            lastDate.setDate(lastDay);
            if (isHourMinSecond)
            {
                s = DateFormat.convertDateToString(lastDate, "yyyy-MM-dd hh:mm:ss");
            }
            else
            {
                s = DateFormat.convertDateToString(lastDate, "yyyy-MM-dd");
            }
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        return s;
    }
    
    /**
     * 计算相差多少分钟  (时分秒) 
     * @param startTime
     *          开始时间  如:8:30:00 
     * @param endTime
     *          结束时间 如:12:00:00
     * @return
     */
    public static int countMinuteSecond(String startTime , String endTime) 
    {
        SimpleDateFormat  sdf = new SimpleDateFormat ("HH:mm:ss");
        
        int minu = 0 ;
        
        try
        {
            long start = sdf.parse(startTime).getTime();
            
            long end = sdf.parse(endTime).getTime();
            
            double ss = (end-start)/1000;
            
            minu = (int)(ss/60);
            
        }
        catch (ParseException e)
        {
            e.printStackTrace();
            return minu;
        }
        return minu;
    }
/**
     * 在当前时间上添加小时,分钟
     * @param dateformat
     *          转换格式 yyyy-MM-dd HH:mm:ss 
     * @param time
     *          时间 
     * @param h
     *        小时
     * @param m
     *         分钟
     * @return
     */
    public static String addTime(String dateformat , String time ,int h , int m ){
        
        SimpleDateFormat  sdf = new SimpleDateFormat (dateformat);
        
        Date date = null;
        try
        {
            date = sdf.parse(time);
            
            Calendar c = Calendar.getInstance();
            
            c.setTime(date);
            
            c.add(Calendar.HOUR_OF_DAY, h);
            
            c.add(Calendar.MINUTE, m);
            
            date = c.getTime();
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        return sdf.format(date);
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值