package pwc.taxtech.atms.service.impl;

import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author ZhiKai Z Wei
 */
public class CitCommonUtil {

    /**
     * 计算当前系统时间期间,返回yyyy格式
     * @return
     */
    public static Integer getPeriod(){
        //计算当前系统时间的期间
        Calendar now = Calendar.getInstance();
        StringBuilder sb = new StringBuilder();
        sb.append(now.get(Calendar.YEAR));
//        if(now.get(Calendar.MONTH) + 1 < 10){
//            sb.append(0);
//        }
//        sb.append(now.get(Calendar.MONTH) + 1);
        return Integer.valueOf(sb.toString());
    }


    /**
     * 导入Excel时根据单元格类型获取单元格的值
     * @param cell
     * @return
     */
    public static Object getValue(Cell cell) {
        Object obj = null;
        //判断单元格是否为null,若为null则直接返回,以防在获取枚举类型时报空指针异常
        if(cell == null){
            return obj;
        }
        switch (cell.getCellTypeEnum()) {
            case BOOLEAN:
                obj = cell.getBooleanCellValue();
                break;
            case ERROR:
                obj = cell.getErrorCellValue();
                break;
            case NUMERIC:
                //日期格式在获取枚举类型时也为NUMERIC,此时要做日期和数据的区分,并对时间做统一的格式转换
                if(HSSFDateUtil.isCellDateFormatted(cell)){
                    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
                    obj = sdf.format(cell.getDateCellValue());
                    break;
                }
                obj = cell.getNumericCellValue();
                break;
            case STRING:
                obj = cell.getStringCellValue();
                break;
            default:
                break;
        }
        return obj;

    }
}