论坛首页 Java企业应用论坛

一道算法题

浏览 1617 次
锁定老帖子 主题:一道算法题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-10-15  
已知2010.1.1是星期五,写一个方法,传入M年N月,计算出第三个星期五是几号
   发表时间:2011-10-16  
刚实现了一个,大家可以讨论讨论
package iteye;

import static org.junit.Assert.assertEquals;

import java.util.Calendar;

import org.junit.Test;

public class Topic_1116583 {
	public static int getThirdFriday(int year,int month) {
		Calendar firstDay = Calendar.getInstance();
		firstDay.setFirstDayOfWeek(Calendar.SATURDAY);
		firstDay.set(Calendar.YEAR,year);
		firstDay.set(Calendar.MONTH,month-1);
		firstDay.set(Calendar.DAY_OF_WEEK_IN_MONTH,3);
		firstDay.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);
		return firstDay.get(Calendar.DAY_OF_MONTH);
	}
	
	@Test
	public void testGetThirdFriday() {
		assertEquals(21, Topic_1116583.getThirdFriday(2011, 10));
		assertEquals(16, Topic_1116583.getThirdFriday(2011, 9));
		assertEquals(19, Topic_1116583.getThirdFriday(2011, 8));
		assertEquals(15, Topic_1116583.getThirdFriday(2011, 7));
		assertEquals(17, Topic_1116583.getThirdFriday(2011, 6));
		assertEquals(20, Topic_1116583.getThirdFriday(2011, 5));
		assertEquals(15, Topic_1116583.getThirdFriday(2011, 4));
		assertEquals(18, Topic_1116583.getThirdFriday(2011, 3));
		assertEquals(18, Topic_1116583.getThirdFriday(2011, 2));
		assertEquals(21, Topic_1116583.getThirdFriday(2011, 1));
		assertEquals(17, Topic_1116583.getThirdFriday(2010, 12));
		assertEquals(19, Topic_1116583.getThirdFriday(2010, 11));
	}
}
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics