怎么求日期区间,帮个忙

tianshengling 2008-07-21 09:45:08
怎么求出前三月的日期区间,如:当前时间:2008-7-21,则前三月区间为:2008-6-1至2008-6-30、2008-5-1至2008-5-31、2008-4-1至2008-4-30
...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
youjianbo_han_87 2008-07-21
  • 打赏
  • 举报
回复
闰年又有问题,呵呵,是if((year%4==0 && year%100!=0) || year % 400 ==0) 晕啊
youjianbo_han_87 2008-07-21
  • 打赏
  • 举报
回复
String dateArea[] = new String[]{"","1-1至1-31","2-1至2-28","3-1至3-31","4-1至4-30","5-1至5-31","6-1至6-30",
"7-1至7-31","8-1至8-31","9-1至9-31","10-1至10-30","11-1至11-31","12-1至12-30"};
if(year%4==0 ||(year%100==0 && year%400!=0))
{
dateArea[2]="2-1至2-29";
}

if(month == 1)
{
(year-1)+dataArea[12],(year-1)+dataArea[11],(year-1)+dataArea[10] 是你要的日期区间
}else if(month == 2)
{
year+dataArea[1],(year-1)+ataArea[12],(year-1)+ataArea[11] 是你要的日期区间
}else if(month == 3)
{
year+dataArea[2],year+dataArea[1],(year-1)+dataArea[12] 是你要的日期区间
}else
{
year+dataArea[n-1],year+dataArea[n-2],year+dataArea[n-3] 是你要的日期区间
}

实现的比较笨,不用脑子的那种,楼主别笑哦,呵呵
youjianbo_han_87 2008-07-21
  • 打赏
  • 举报
回复
不好意思,上面有点错误,更正如下:
前n个月的区间为:
n==1 dataArea[12],dataArea[11],dataArea[10]
n==2 dataArea[1],dataArea[12],dataArea[11]
n==3 dataArea[2],dataArea[1],dataArea[12]
其他时候 dataArea[n-1],dataArea[n-2],dataArea[n-3]
tianshengling 2008-07-21
  • 打赏
  • 举报
回复
能给我写出来吗?,谢谢了
youjianbo_han_87 2008-07-21
  • 打赏
  • 举报
回复
因为你求的是日期区间,没有什么可变化的,把时间区间写死就可以了,比如

String dateArea[] = new String[]{"","1-1至1-31","2-1至2-28","3-1至3-31","4-1至4-30","5-1至5-31","6-1至6-30",
"7-1至7-31","8-1至8-31","9-1至9-31","10-1至10-30","11-1至11-31","12-1至12-30"};
如果是闰年,则dateArea[2]="2-1至2-29"
然后指定前n个月的区间
则dataArea[n-1>0?n-1:13-n],dataArea[n-2>0?n-2:13-n-1],dataArea[n-3>0?n-3:13-n-2]代表n月的前3个月的区间
假如年份是year,注意当月份是3月以前时,年份要倒退一年
reality 2008-07-21
  • 打赏
  • 举报
回复
得到这个月的第一天
得到下个月的第一天
下个月的第一天减一天得到这个月的最后一天
  • 打赏
  • 举报
回复
当月的第一天,往后减1天,就是上月的最后一天
tianshengling 2008-07-21
  • 打赏
  • 举报
回复
我要求出前三个月的时间区域,这个好像求的当月的第一天
  • 打赏
  • 举报
回复
/**
* 取得指定日期的所处月份的第一天
*
* @param date 指定日期。
* @return 指定日期的所处月份的第一天
*/
public static synchronized java.util.Date getFirstDayOfMonth(java.util.Date date) {
/**
* 详细设计: 1.设置为1号
*/
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
gc.set(Calendar.DAY_OF_MONTH, 1);
return gc.getTime();
}

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧