`

java输出每月有多少天

    博客分类:
  • 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;
			}

		}

	}
分享到:
评论

相关推荐

    C、Python、Java输出每个月的天数函数解析

    C、Python、Java输出每个月的天数函数解析 C、Python、Java输出每个月的天数函数解析 C、Python、Java输出每个月的天数函数解析 C、Python、Java输出每个月的天数函数解析 C、Python、Java输出每个月的天数函数解析 ...

    java实现输入任意两个日期输出月份数和天数

    java实现输入任意两个日期输出月份数和天数,综合考虑闰年、2月等因素,对于整月计算利息或按天数计算利息提供基础工具类。也可以吧内部类独立出来,方便跨包调用,可自行调整。很实用的一个实现。其他百度查到的很...

    java实现简单的日历功能,可以输入年份和月份来输出日历.zip

    日历的日期部分可能会跨多行,因为每个月的第一天可能不在星期一,而最后一天可能不在星期日。 为了提高用户体验,可以进一步扩展这个程序,比如添加颜色标记周末,或者支持农历日历,或者增加一些交互性,让用户...

    用java实现的万年历

    2. **月份和天数计算**:万年历需要知道每个月有多少天,闰年和平年的区别,以及如何根据给定的年份和月份计算一个月的第一天和最后一天。这涉及到关于公历规则的知识,例如闰年规则:能被4整除但不能被100整除的...

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    输出每个月的天数函数.md

    java输出每个月的天数函数

    Java万年历(从控制台输入)

    Java万年历是一个经典的编程练习,它涉及到日期计算和输出,是学习编程语言时经常会遇到的一个实例。在这个项目中,开发者需要编写一个程序,能够根据用户输入的年份和月份,自动生成该月的日历。这不仅巩固了基础...

    Java实现万年历

    可以利用`TemporalAdjusters`来获取每个月的第一天。 **步骤5:格式化输出** 为了让输出更加美观,可以使用`String.format()`方法来格式化日期的显示。 以下是一个简单的示例代码片段,展示了如何打印一个月的日期...

    java语言编写的程序和报告

    输出英文字母表 编写一个Java 应用程序,该程序在命令窗口输出英文字母表。 提示:为了输出英文字母表,首先应该获取字母表中的第一个字母和最后一个...用户输入年利率,贷款年数,贷款总额,程序输出每月还款数额。

    java 获取农历24节气时间

    Java 实现当前日期的农历日期显示以及节气显示,完美实现24节气

    Java字符串 日期 数字格式化输出-.doc

    Java 字符串日期数字格式化输出 Java 中的字符串日期数字格式化输出是一种常见的操作,特别是在数据输出和显示时。 Java 提供了多种方式来实现格式化输出,包括使用 NumberFormat、DecimalFormat 和 ...

    java源码包4

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java计算24节气

    2. **节气算法**:计算24节气的算法基于太阳黄经度,每年大致固定,但具体到每一天需要精确计算。24节气包括立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、...

    JAVA日期计算程序

    1、由用户输入一个月份,屏幕上输出这个月的月历,每星期一行,从星期日开始,到星期六结束。 2、由用户输入一个日期,屏幕上回答是星期几。 3、由用户输入二个日期,计算这两个日期之间相差多少天。

    java计算你活了具体多少天

    在Java编程语言中,计算一个人活了多少天是一个基础的日期处理问题。这通常涉及到使用Java 8引入的新日期时间API,即`java.time`包。这个API提供了丰富的类和方法来处理日期、时间以及日期时间的计算。在这个项目中...

    java日历代码显示12个月

    `Calendar.DAY_OF_MONTH`字段可以获取指定月份的最后一天,这将帮助我们确定该月有多少天。 ```java int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); ``` 6. **打印日历**: 你可以创建一...

    java源码包3

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java 循环语句练习题.docx

    六、计算 2000 年 1 月 1 日到 2008 年 1 月 1 日相距多少天。(注意闰年) 这个练习题旨在让读者熟悉日期计算和循环语句的使用方法。读者需要使用日期计算和循环语句来计算指定的日期间隔。这个练习题可以帮助读者...

Global site tag (gtag.js) - Google Analytics