package com.younike.common.utils.deliver.estimated;


import com.younike.common.utils.date.DateUtils;

import java.util.Date;
import java.util.concurrent.TimeUnit;

/**
 * 获取 预计送达时间
 * 2021-8-7 Another
 */
public class EstimatedDeliveryTimeUtils {

    /**
     * 获取 预计送达时间（暂定50分钟）
     * @param deliveryTime 期望送达时间
     * @param createTime 订单创建时间
     * @return 预计送达时间
     */
    public static Date getEstimatedDeliveryTime(Date deliveryTime, Date createTime) {
        if (deliveryTime == null || createTime == null) {
            return null;
        }
        // 判断 期望送达时间 和 订单创建时间 相差是否超过50分钟，超过50分钟 暂定 预计送达时间为期望送达时间，不超过以 订单创建时间加50分钟后的时间 为预计送达时间
        long millisecond = deliveryTime.getTime() - createTime.getTime();
        long minutes = TimeUnit.MILLISECONDS.toMinutes(millisecond);
        if (minutes > 50) {
            return deliveryTime;
        } else {
            return DateUtils.addDateMinutes(createTime, 50);
        }
    }

}
