java怎么得到某个月的第一天和最后一天的日期,以2012-06为例

 我来答
笨笨2蛋蛋
2012-09-24 · 超过10用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:32.8万
展开全部
public class DateUtil { /** * 获取给定时间所在周的第一天(Sunday)的日期和最后一天(Saturday)的日期 * * @param calendar * @return Date数组,[0]为第一天的日期,[1]最后一天的日期 */ public Date[] getWeekStartAndEndDate(Calendar calendar) { Date[] dates = new Date[2]; Date firstDateOfWeek, lastDateOfWeek; // 得到当天是这周的第几天 int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 减去dayOfWeek,得到第一天的日期,因为Calendar用0-6代表一周七天,所以要减一 calendar.add(Calendar.DAY_OF_WEEK, -(dayOfWeek - 1)); firstDateOfWeek = calendar.getTime(); // 每周7天,加6,得到最后一天的日子 calendar.add(Calendar.DAY_OF_WEEK, 6); lastDateOfWeek = calendar.getTime(); dates[0] = firstDateOfWeek; dates[1] = lastDateOfWeek; return dates; } /** * 获取给定时间所在月的第一天F的日期和最后一天的日期 * * @param calendar * @return Date数组,[0]为第一天的日期,[1]最后一天的日期 */ public Date[] getMonthStartAndEndDate(Calendar calendar) { Date[] dates = new Date[2]; Date firstDateOfMonth, lastDateOfMonth; // 得到当天是这月的第几天 int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // 减去dayOfMonth,得到第一天的日期,因为Calendar用0代表每月的第一天,所以要减一 calendar.add(Calendar.DAY_OF_MONTH, -(dayOfMonth - 1)); firstDateOfMonth = calendar.getTime(); // calendar.getActualMaximum(Calendar.DAY_OF_MONTH)得到这个月有几天 calendar.add(Calendar.DAY_OF_MONTH, calendar .getActualMaximum(Calendar.DAY_OF_MONTH) - 1); lastDateOfMonth = calendar.getTime(); dates[0] = firstDateOfMonth; dates[1] = lastDateOfMonth; return dates; } public static void main(String[] args) { DateUtil dateUtil = new DateUtil(); Calendar now = Calendar.getInstance(); Date[] weekDates = dateUtil.getWeekStartAndEndDate(now); Date[] monthDates = dateUtil.getMonthStartAndEndDate(now); System.out.println("firstDateOfWeek: " + weekDates[0] + " ,lastDateOfWeek: " + weekDates[1]); System.out.println("firstDateOfMonth: " + monthDates[0] + " ,lastDateOfMonth: " + monthDates[1]); }}
BUG集散地
2012-09-24 · TA获得超过1317个赞
知道小有建树答主
回答量:625
采纳率:80%
帮助的人:280万
展开全部
代码上面都有了,我也没看,可以给你个思路。 得到Date ,然后把day设置为 0 就是第一天,
把月份加1 得到上个月,然后设置第一天,就是上个月的第一天,然后减去一天,就得到这个月的最后一天了。可以不用判断这个月有几天,如果需要具体代码再喊我.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笑叹江雪
推荐于2017-11-25 · TA获得超过668个赞
知道小有建树答主
回答量:264
采纳率:100%
帮助的人:333万
展开全部
今天刚好写了这个代码

Calendar cal = Calendar.getInstance();
// 不加下面2行,就是取当前时间前一个月的第一天及最后一天
cal.set(Calendar.YEAR,2012)
cal.set(Calendar.MONTH, 6);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = cal.getTime();

cal.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = cal.getTime();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
煌煌笑
2012-09-25 · 超过14用户采纳过TA的回答
知道答主
回答量:148
采纳率:0%
帮助的人:58.7万
展开全部
1、第一天很容易啊,比如先得到当前日期,然后直接把日改成1。
2、得到最后一天也容易,先按第一点得到当前月的第一天,然后把月加一,再减一天。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cf619536f
2012-09-24 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:77.5万
展开全部
第一天的话需要前面所有月数的天数总和加上6 在除以7 得到的数是几 就是星期几!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式