package com.app.mvc.util;
import static com.google.common.base.Preconditions.checkArgument;
/**
* 时间点压缩,解压工具类,用于将时间点(小时,分钟)进行压缩,使其
* 成为一个新的组合数字,减少存储和传输所占的空间
* Created by jimin on 16/3/10
*/
public class TimePointUtil {
private static final int HALF_SHIFT = 8;
/**
* 返回结果一定是2个item的数组:
* <ol>
* <li>ret[0]是hour</li>
* <li>ret[1]是minute</li>
* </ol>
*
* @return
*/
public static short[] decode(short val) {
return new short[] { (short) (val >> HALF_SHIFT), (short) (val & 0xFF) };
}
/**
* hour: [0,23] , minute: [0,59]
*
* @param hour
* @param minute
* @return
*/
public static short encode(short hour, short minute) {
checkArgument(hour >= 0 && hour < 24, "小时应该:[0,23]");
checkArgument(minute >= 0 && minute < 60, "分钟应该:[0,59]");
return (short) (hour << HALF_SHIFT | (minute));
}
}