【Java自定义工具类】日期时间转换(年月日时分秒转换)(46)

3 篇文章 0 订阅
	/*
     * 日期时间转化计算
     */
    public static long getTimeSecondNum(String date){
        long total = 0;
        String[] time = date.split("-");  // 年月日分割
        if(time.length == 3) {
            long l1 = Long.parseLong(time[0]) * 360;  // 年转成天
            long l2 = Long.parseLong(time[1]) * 31;  // 月转成
            long l3 = Long.parseLong(time[2]);  // 天
            total = l1 + l2 + l3;
        }
        if(time.length == 6) {
            long l1 = Long.parseLong(time[0]) * 12 * 31 * 24 * 60 * 60 ;  // 年转秒
            long l2 = Long.parseLong(time[1]) * 31 * 24 * 60 * 60;  // 月转成秒
            long l3 = Long.parseLong(time[2]) * 1 * 24 * 60 * 60;  // 日转秒
            long l4 = Long.parseLong(time[3]) * 1 * 1 * 60 * 60;  // 时转秒
            long l5 = Long.parseLong(time[4]) * 1 * 1 * 1 * 60;  // 分转秒
            long l6 = Long.parseLong(time[5]);  // 秒
            total = l1 + l2 + l3 + l4 + l5 + l6;
        }
        return total;
    }
/*
 * 自定义日期时间显示方式:
 * 原则:小于等于1天按照单位小时显示,小于等于1月按照单位X天X小时显示,大于1月按照X月X天显示
 */
public static String getCustomDuration(long par){
        String result = "";
        long hour = (long)Math.ceil(par * 1.0 / 3600);  // 小时向上取整
        if(par < 3600) {
            result = "<1小时";
        }
        else if(par >= 1 * 3600 && par <= 24 * 3600){
            result = String.valueOf(hour) + "小时";
        }
        else if(par > 24 * 3600 * 1 && par <= 24 * 3600 * 31){
            String day = "";
            String hours_str = String.valueOf((double)par/3600/24);
            day = hours_str.substring(0, hours_str.indexOf("."));
            double hours_0 = Double.parseDouble("0" + hours_str.substring(hours_str.indexOf(".")));
            double hours_1 = hours_0 * 24;
            long hours_2 = (long)Math.ceil(hours_1*1.0);
            String hours_3 = String.valueOf(hours_2);
            result = day + "天" + hours_3 + "小时";
        }
        else {
            String month = "";
            String hours_str = String.valueOf((double)par/3600/24/31);
            month = hours_str.substring(0, hours_str.indexOf("."));
            double hours_0 = Double.parseDouble("0" + hours_str.substring(hours_str.indexOf(".")));
            double hours_1 = hours_0 * 31;
            long hours_2 = (long)Math.ceil(hours_1*1.0);
            String hours_3 = String.valueOf(hours_2);
            result = month + "月" + hours_3 + "天";
        }
        return result;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KevinDuc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值