`
wing123
  • 浏览: 789286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

指定日期是星期几

    博客分类:
  • Java
阅读更多

代码:

 

public void weekTest() throws ParseException {
	Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2011-02-01");
	Calendar c = Calendar.getInstance();
	c.setTime(date);
	int year = c.get(Calendar.YEAR);
	int month = c.get(Calendar.MONTH) + 1;// January is 0
	int day = c.get(Calendar.DAY_OF_WEEK_IN_MONTH);
	int week = c.get(Calendar.DAY_OF_WEEK);
	showEnWeek(week);
	showWeekDay(year, month, day);
    }

    private void showEnWeek(int week) {
	String weekStr = "";
	switch (week) {
	case 1:
	    weekStr = "Sun";
	    break;
	case 2:
	    weekStr = "Mon";
	    break;
	case 3:
	    weekStr = "Tue";
	    break;
	case 4:
	    weekStr = "Wed";
	    break;
	case 5:
	    weekStr = "Thu";
	    break;
	case 6:
	    weekStr = "Fri";
	    break;
	case 7:
	    weekStr = "Sat";
	    break;
	}
	System.out.println(weekStr);

    }

    public static void showWeekDay(int year, int month, int day) {

	char[] ch = new char[] { '日', '一', '二', '三', '四', '五', '六' };

	int eclipseDays = 1; // 公元元年一月一日是星期一

	eclipseDays += year - 1;

	for (int i = 1; i < year; i++) {

	    if (isBissextile(i))

		eclipseDays++;

	}

	switch (month) {

	case 1:
	    break;

	case 2:
	    eclipseDays += 3;
	    break;

	case 3:
	    eclipseDays += 3;
	    break;

	case 4:
	    eclipseDays += 6;
	    break;

	case 5:
	    eclipseDays += 8;
	    break;

	case 6:
	    eclipseDays += 11;
	    break;

	case 7:
	    eclipseDays += 13;
	    break;

	case 8:
	    eclipseDays += 16;
	    break;

	case 9:
	    eclipseDays += 19;
	    break;

	case 10:
	    eclipseDays += 21;
	    break;

	case 11:
	    eclipseDays += 24;
	    break;

	case 12:
	    eclipseDays += 26;

	}

	if (isBissextile(year) && month > 2)

	    eclipseDays++;

	eclipseDays = (eclipseDays + day - 1) % 7;

	System.out.println(year + "年" + month + "月" + day + "日是星期"
		+ ch[eclipseDays]);

    }

    public static boolean isBissextile(int year) {

	boolean bissextileFlag = false;

	if (year % 4 == 0) {

	    if (year % 100 != 0)

		bissextileFlag = true;

	    else if (year % 400 == 0)

		bissextileFlag = true;

	}

	return bissextileFlag;

    }

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics