java输出每月有多少天

package test;

public class DateTest {

	public static void main(String[] args) {
		System.out.println(DateTest.getDay(2000, 2));
	}

	public static int getDay(int year,int month){
		int day = 0;
		switch (month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			day = 31;
			break;
		case 4:
		case 6:
		case 9:
		case 11: 
			day = 30;
			break;
		default:
			if((year%4==0&&year%100!=0)||year%400==0)
				day = 29;
			else
				day = 28;
			break;
		}
		return day;
	}
	
}



更优的代码如下: http://zhidao.baidu.com/question/41887636.html

package cn.com.songjy.date;

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

public class CalendarTester {
	private static SimpleDateFormat format = new SimpleDateFormat("yyyyMM");

	/** * @param args */
	public static void main(String[] args) {
		String source = "200702";
		try {
			Date date = format.parse(source);
			Calendar calendar = new GregorianCalendar();
			calendar.setTime(date);
			System.out
					.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}


备忘
/**
	 * 获取<start>和<end>之间的月数,包括边界
	 * 
	 * @method getMonths
	 * @param start
	 * @param end
	 * @return
	 * @throws ParseException
	 * @since v1.0
	 */
	public static Set<String> getMonths(Date start, Date end)
			throws ParseException {

		Set<String> set = new TreeSet<>();

		if (null == start || null == end)
			return set;

		if (start.compareTo(end) > 0) {
			Date date = start;
			start = end;
			end = date;
		}

		String s_start = DateFormatUtils.format(start, "yyyy-MM");
		String s_end = DateFormatUtils.format(end, "yyyy-MM");

		set.add(s_end);

		if (s_start.equals(s_end))
			return set;

		Calendar c_start = Calendar.getInstance();
		c_start.setTime(start);

		Calendar c_end = Calendar.getInstance();
		c_end.setTime(end);

		while (true) {

			c_start.add(Calendar.DAY_OF_MONTH, 1);

			Date date = c_start.getTime();

			String s_date = DateFormatUtils.format(date, "yyyy-MM");

			set.add(s_date);

			if (s_end.equals(s_date))
				break;

		}

		set.add(s_start);
		set.add(s_end);

		return set;

	}


	public void demo() throws IOException, ParseException {

		String[] allMonths = { "2014-01", "2014-02", "2014-03", "2014-04" };

		String start = allMonths[0];

		for (int i = 0; i < allMonths.length; i++) {

			Date d = DateUtils.addMonths(DateUtils.parseDate(start, "yyyy-MM"),
					2);

			String t = DateFormatUtils.format(d, "yyyy-MM");

			int index = ArrayUtils.indexOf(allMonths, t);

			if (index >= 0) {

				System.out.println("1," + start + "," + t);

				d = DateUtils.addMonths(d, 1);

				start = DateFormatUtils.format(d, "yyyy-MM");

			} else {

				if (ArrayUtils.indexOf(allMonths, start) >= 0)
					System.out.println("2," + start + "," + allMonths[allMonths.length - 1]);
				break;
			}

		}

	}

你可能感兴趣的:(java,某月天数)