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

求某年12个月的开始结束日期

 
阅读更多

题外话:

这个题目有很简单的做法,但是我更喜欢使用这种方式,这里是将12个月的开始时间和结束时间作为map的value属性,月份作为map的key属性,存储在map集合中,详细且看下文,

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class TimeMonth {

	protected Calendar date = null;

	protected final static Integer MONTH_COUNT = 12;

	protected SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

	protected Map<Integer, String[]> monthDateMap = new LinkedHashMap<Integer, String[]>();

	public TimeMonth(int year) {

		date = Calendar.getInstance();
		date.set(Calendar.YEAR, year);
		for (int i = 0; i < MONTH_COUNT; i++) {

			date.set(Calendar.MONTH, i);
			int minMonthDate = date.getActualMinimum(Calendar.DAY_OF_MONTH);
			date.set(Calendar.DATE, minMonthDate);
			String startMonth = dateFormat.format(date.getTime());
			int maxMonthDate = date.getActualMaximum(Calendar.DAY_OF_MONTH);
			date.set(Calendar.DATE, maxMonthDate);
			String endMonth = dateFormat.format(date.getTime());

			String monthDate[] = {startMonth,endMonth};
			monthDateMap.put(i + 1, monthDate);
		}
	}

	/**
	 * 要获取的 monthDateMap
	 * 
	 * @return monthDateMap
	 */
	public Map<Integer, String[]> getMonthDateMap() {

		return monthDateMap;
	}

	/**
	 * 要设置的 monthDateMap
	 * 
	 * @param monthDateMap
	 */
	public void setMonthDateMap(Map<Integer, String[]> monthDateMap) {
		this.monthDateMap = monthDateMap;
	}
	
	public static void main(String[] args) {

		TimeMonth mon = new TimeMonth(2010);
		Map<Integer,  String[]> monthDate = mon.getMonthDateMap();

		Set<Entry<Integer,  String[]>> set = monthDate.entrySet();
		for (Entry<Integer,  String[]> entry : set) {
			Integer monthNum = entry.getKey();
			 String[] months = entry.getValue();
			System.out.println("第 " + monthNum + " 个月的开始日期为:"
					+ months[0] + ",结束日期为:"
					+ months[1]);
		}
	}

}

 

这里的测试的年份为2010年,这段代码与闰年平年无关,结果为:

 

第 1 个月的开始日期为:2010-01-01,结束日期为:2010-01-31
第 2 个月的开始日期为:2010-02-01,结束日期为:2010-02-28
第 3 个月的开始日期为:2010-03-01,结束日期为:2010-03-31
第 4 个月的开始日期为:2010-04-01,结束日期为:2010-04-30
第 5 个月的开始日期为:2010-05-01,结束日期为:2010-05-31
第 6 个月的开始日期为:2010-06-01,结束日期为:2010-06-30
第 7 个月的开始日期为:2010-07-01,结束日期为:2010-07-31
第 8 个月的开始日期为:2010-08-01,结束日期为:2010-08-31
第 9 个月的开始日期为:2010-09-01,结束日期为:2010-09-30
第 10 个月的开始日期为:2010-10-01,结束日期为:2010-10-31
第 11 个月的开始日期为:2010-11-01,结束日期为:2010-11-30
第 12 个月的开始日期为:2010-12-01,结束日期为:2010-12-31

分享到:
评论

相关推荐

    SQL SERVER 获取年、季、月、周、日开始时间和结束时间

    Type 日期类型:(“-”为前一期间,无符号为当期,“+”为后一期间),Y 年,Q 季,M 月,W 周,D 日 例:前一年:-Y,当年:Y,+Y:下一年 datetype : ‘S’返回开始时间,'E'返回结束时间 datetime: 按哪个时间进行...

    java获取某年某月到某年某月按天的切片日期集合(间隔天数的集合)、获取某年某月按天切片日期集合(某个月间隔多少天的日期集合)

    java获取某年某月到某年某月按天的切片日期集合(间隔天数的集合)、获取某年某月按天切片日期集合(某个月间隔多少天的日期集合)、指定天的开始和结束日期、返回某个日期前几天的日期并转换成字符串

    C#获取每个年,月,周的起始日期和结束日期的方法

    这篇内容主要讲解了如何利用C#获取每个年、月、周的起始日期和结束日期。这些功能在数据分析、报告生成或者日程管理等场景中非常实用。下面我们将深入探讨这个话题。 首先,我们需要一个枚举类型来表示不同的时间段...

    PHP 获取某年第几周的开始日期和结束日期的实例

    4. 然后,函数找到这一周的结束日期(`$weekday['end']`),即从开始日期加上一个星期天的时间差。如果结束日期超出了当年的范围,即日期部分的年份不是输入的年份,则将结束日期设为该年的最后一天($year_end)。 ...

    求某段时间内某一星期日期的天数

    例如,如果我们想知道2021年1月1日至2021年12月31日之间周一出现了多少次,这就是我们需要解决的问题。 ### 描述解读 **描述:“求某段时间内某一星期日期的天数:用SQL Server函数实现”** 这段描述进一步明确了...

    Python获取昨天、今天、明天开始、结束时间戳的方法

    时间戳通常是指从某一个特定时间点开始所经过的秒数,这个时间点一般指的是1970年1月1日午夜12点(也就是所谓的UNIX纪元时间)。在Python中,我们可以将日期对象转换为时间戳,这样可以方便地进行时间的比较和计算。...

    python获取指定日期范围内的每一天,每个月,每季度的方法

    为了获取从开始日期到结束日期的每一天,并将这些日期以列表的形式返回,可以定义一个函数`getBetweenDay`。这个函数接受一个参数`begin_date`,表示起始日期。首先,需要将字符串格式的`begin_date`转换为datetime...

    C# 年 周 月 的计算

    这个主题主要探讨如何在C#中计算一年中的周数、确定某一天在当年的第几周,以及获取特定日期所在周的起始和结束日期。我们将通过深入理解.NET Framework的DateTime结构和相关类来探讨这些概念。 首先,了解基础:C#...

    使用sql语句查询日期

    - `enddate`:结束日期。 #### 三、具体应用示例 1. **查询当天的所有数据** ```sql SELECT * FROM ShopOrder WHERE DATEDIFF(day, ordTime, GETDATE()) = 0; ``` 这条语句的作用是找出所有在当前日期(`...

    日期相关工具类,非常实用可靠。经常在项目中使用的资源。

    1. 返回当前时间的字符串, 2. 返回当月剩余秒数 3. 在原日期的基础上加上增加的小时数 4. 在原日期的基础上加上增加的天数 5. 比较连个日期的大小...12. 获取 指定开始日期和结束日期,包含的日期列表 13. getNextDay

    两个时间间隔的天数

    - `sDate2`:表示结束日期的字符串。 - 这两个参数都是格式为 `"年-月-日"` 的字符串,例如 `"2007-04-19"`。 - **内部逻辑**: 1. 使用 `split('-')` 方法将输入的日期字符串按 `-` 分割成数组 `aDate`。 2. ...

    根据输入的日期获取所属季度

    - 如果月份在10-12月之间,则属于第四季度。 3. **结果返回**: 返回表示季度的字符串。 #### 五、应用场景 1. **财务报告**: 企业需要按照季度生成财务报告。 2. **数据分析**: 分析某一时间段内的数据时,按季度...

    jqGrid日期格式的判断示例代码(开始日期与结束日期)

    jqGrid是一个流行的jQuery插件,用于创建可交互的表格,而这里主要关注的是如何在表格中检查开始日期和结束日期的格式是否符合指定的标准。 首先,我们看到有两个变量`beginValue`和`endValue`分别代表开始时间和...

    PHP日期相关类.zip

    介绍一个PHP日期相关类,获取某年某月的开始结束日期,获取某年某周的开始结束日期,这是一个比较实用的类,需要的朋友们可以参考,如果大家有更好的此类的代码也可以上传与我们分享。

    用java实现的万年历

    同时,需要根据日期和星期几来决定每行的开始和结束,这需要嵌套的循环和条件判断。 4. **格式化输出**:输出日历时,可能需要将日期格式化为特定样式,例如"月/日"或"星期x,月日"。这可以使用`SimpleDateFormat`...

    计算某年从某一天起某日是第几周

    在编程领域,计算某年从某一天起某日是第几周是一个常见的日期处理问题,主要涉及日期和时间的操作。这个任务通常会在日历应用、数据分析或者报告生成等场景中出现。下面我们将深入探讨如何实现这个功能,并提供相关...

    DateUtils.java

    "获取某年的第几周的结束日期","获取当前时间所在周的开始日期","当前时间所在周的结束日期","获得上周一的日期","获得本周一的日期","下周一的日期","今天日期","本月一日的日期","获得本月最后一日的日期

    Java中用Calendar类计算周和周的起始日期

    在计算某年某周的结束日期时,需要了解 getLastDayOfWeek() 方法,该方法用于获取某年某周的最后一天。该方法首先将年份和周数目设置到 Calendar 对象中,然后使用 add() 方法将日期添加到 Calendar 对象中,然后...

    Excel日期和时间函数.docx

    该函数可以根据指定的开始日期和结束日期返回年、月、日之间的差值。例如,=DATEDIF(A1, B1, "Y") 将返回 A1 和 B1 之间的年数差值。 三、DATEVALUE 函数 DATEVALUE 函数用于将文本格式的日期转换为系列数。其语法...

Global site tag (gtag.js) - Google Analytics