`
javaboy2006
  • 浏览: 183493 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

根据输入日期值输出所在季度起始日期(2008.4.8笔试)

阅读更多
/**
 * 根据输入日期值输出所在季度起始日期
 */
public class Test {

	public static void main(String[] args) {
		// TODO 自动生成方法存根
		String[] a = getQuarterDate("20070818");
		for (String s : a) {
			System.out.println(s);
		}
	}

	public static String[] getQuarterDate(String tradeDate) {
		String[] array = new String[2];

		try {
			java.util.Date date = new java.text.SimpleDateFormat("yyyyMMdd")
					.parse(tradeDate);
			java.util.Calendar cal = java.util.Calendar.getInstance();
			cal.setTime(date);
			if ((cal.get(cal.MONTH) + 1) % 3 == 0)// 季度结束月
			{
				array[1] = cal.get(cal.YEAR) + " " + (cal.get(cal.MONTH) + 1)
						+ " " + cal.getActualMinimum(cal.DATE);// 结束日期
				cal.add(cal.MONTH, -2);
				array[0] = cal.get(cal.YEAR) + " " + (cal.get(cal.MONTH) + 1)
						+ " " + cal.getActualMaximum(cal.DATE);// 开始日期
			} else if ((cal.get(cal.MONTH) + 2) % 3 == 0)// 季度中间月
			{
				cal.add(cal.MONTH, -1);
				array[0] = cal.get(cal.YEAR) + " " + (cal.get(cal.MONTH) + 1)
						+ " " + cal.getActualMinimum(cal.DATE);// 开始日期
				cal.add(cal.MONTH, +2);
				array[1] = cal.get(cal.YEAR) + " " + (cal.get(cal.MONTH) + 1)
						+ " " + cal.getActualMaximum(cal.DATE);// 结束日期
			} else if ((cal.get(cal.MONTH) + 3) % 3 == 0)// 季度起始月
			{
				array[0] = cal.get(cal.YEAR) + " " + (cal.get(cal.MONTH) + 1)
						+ " " + cal.getActualMinimum(cal.DATE);// 开始日期
				cal.add(cal.MONTH, +2);
				array[1] = cal.get(cal.YEAR) + " " + (cal.get(cal.MONTH) + 1)
						+ " " + cal.getActualMaximum(cal.DATE);// 结束日期
			}
		} catch (java.text.ParseException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return array;
	}
}
输出:
2007 7 1
2007 9 30
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics