import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

@RestController
public class TestController {

    /**
     * 使用compareTo()方法比较
     * String beginTime = "2018-07-28 14:42:32";
     * String endTime = "2018-07-29 12:26:32";
     * @param beginTime
     * @param endTime
     * @return
     */
    @PostMapping(value = "/compareToMethod")
    public JSONObject compareToMethod(String beginTime, String endTime) {
        JSONObject jsonObject = new JSONObject();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        int resultNum = 0;
        try {
            Date beginDate = dateFormat.parse(beginTime);
            Date endDate = dateFormat.parse(endTime);
            resultNum = beginDate.compareTo(endDate);
            jsonObject.put("code", 200);
            switch (resultNum) {
                case -1:
                    jsonObject.put("msg", "beginTime早于endTime");
                    return jsonObject;
                case 0:
                    jsonObject.put("msg", "beginTime等于endTime");
                    return jsonObject;
                case 1:
                    jsonObject.put("msg", "beginTime晚于endTime");
                    return jsonObject;
                default:
                    jsonObject.put("msg", "输入参数异常");
                    jsonObject.put("code", 500);
                    return jsonObject;
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return jsonObject;
    }

    /**
     * String beginTime = "2018-07-28 14:42:32";
     * String endTime = "2018-07-29 12:26:32";
     * before()可以用after()替换
     * @param beginTime
     * @param endTime
     * @return
     */
    @PostMapping(value = "/beforeMethod")
    public JSONObject beforeMethod(String beginTime,String endTime){
        JSONObject jsonObject = new JSONObject();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date beginDate = dateFormat.parse(beginTime);
            Date endDate = dateFormat.parse(endTime);
            Boolean result = beginDate.before(endDate);
            if (result){
                jsonObject.put("msg","beginTime早于endTime");
            }else {
                jsonObject.put("msg","beginTime晚于endTime");
            }
        }catch (ParseException e){
            e.printStackTrace();
        }
        return jsonObject;
    }

    /**
     * 通过调用Date的getTime()方法获取到毫秒数来进行比较
     * @param beginTime
     * @param endTime
     * @return
     */
    @PostMapping(value = "millMethod")
    public JSONObject millMethod(String beginTime,String endTime){
        JSONObject jsonObject = new JSONObject();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date beginDate = dateFormat.parse(beginTime);
            Date endDate = dateFormat.parse(endTime);
            Long beginMillDate = beginDate.getTime();
            Long endMillDate = endDate.getTime();
            if (beginMillDate < endMillDate){
                jsonObject.put("msg","beginTime早于endTime");
            }else {
                jsonObject.put("msg","beginTime晚于endTime");
            }
        }catch (ParseException e){
            e.printStackTrace();
        }
        return jsonObject;
    }

}