/** * */ package com.hundsun.ares.studio.jres.script.util.impl; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import com.hundsun.ares.studio.core.ConsoleHelper; import com.hundsun.ares.studio.jres.script.util.IScriptCalendarUtil; /** * @author yanwj06282 * */ public class ScriptCalendarUtilImpl implements IScriptCalendarUtil { public static ScriptCalendarUtilImpl instance = new ScriptCalendarUtilImpl();; private static final Logger console = ConsoleHelper.getLogger(); @Override public Date addMonth(String date, int pi) { Calendar calendar = null; try { String year = StringUtils.substring(date, 0, 4); String month = StringUtils.substring(date, 4); calendar = new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month), 0); calendar.add(Calendar.MONTH, pi); } catch (Exception e) { console.error(String.format("ʱ���ʽ���� [s%]", date), e); } return calendar.getTime(); } @SuppressWarnings("static-access") public int getMonthLastDay(String date, int pi){ Calendar calendar = null; try { String year = StringUtils.substring(date, 0, 4); String month = StringUtils.substring(date, 4); calendar = new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month), 0);//�·ݴ�0��ʼ����Ҫ�Զ���1 calendar.add(Calendar.MONTH, pi); return calendar.getActualMaximum(calendar.DAY_OF_MONTH); } catch (Exception e) { console.error(String.format("ʱ���ʽ���� [s%]", date), e); } return 30; } @Override public String format(Date date, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.format(date); } public Date now(){ return new Date(); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.util.IScriptCalendarUtil#addDay(java.lang.String, int) */ @Override public Date addDay(String date, int pi) { Calendar calendar = null; try { String year = StringUtils.substring(date, 0, 4); String month = StringUtils.substring(date, 4,6); String day = StringUtils.substring(date, 6); calendar = new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month)-1, Integer.parseInt(day));//�·ݴ�0��ʼ����Ҫ�Զ���1 calendar.add(Calendar.DATE, pi); } catch (Exception e) { console.error(String.format("ʱ���ʽ���� [s%]", date), e); } return calendar.getTime(); } }