做个日期查询,判断开始日期与终止日期范围必须在一个月之内,用java代码

 我来答
小树叶0318
推荐于2017-12-16
知道答主
回答量:3
采纳率:0%
帮助的人:4126
展开全部
import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;

public class DateTest {

/**
* 判断是否在同一个月
* @param startDate yyyy-MM-dd
* @param endDate yyyy-MM-dd
* @return false:不在同一个月内,true在同一个月内
*/
public static boolean isMonth(String startDate,String endDate){
if(margin(startDate, endDate)>31){
return false;
}
int startMonth = Integer.parseInt(startDate.substring(5, 7));
int endMonth = Integer.parseInt(endDate.substring(5, 7));
if(startMonth==endMonth){
return true;
}else{
return false;
}
}

/**
* 计算开始日期和结束日期差
* @param startDate yyyy-MM-dd
* @param endDate yyyy-MM-dd
* @return
*/
private static int margin(String startDate,String endDate){
ParsePosition pos = new ParsePosition(0);
ParsePosition pos2 = new ParsePosition(0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date ds = sdf.parse(startDate, pos);
Date de = sdf.parse(endDate, pos2);
long l = de.getTime()-ds.getTime();
int margin = (int)(l/24*60*60*1000);
return margin;
}

/**
* main方法测试
* @param args
*/
public static void main(String[] args) {
System.out.println(DateTest.isMonth("2014-10-17", "2014-10-25"));
System.out.println(DateTest.isMonth("2014-10-17", "2014-12-25"));
}

}
悦峯org
2015-08-11 · 愿原力与你同在May The Force Be With Y...
悦峯org
采纳数:58 获赞数:115

向TA提问 私信TA
展开全部
        java.util.Date nowdate = new java.util.Date();

        java.util.Date beforeDate = new java.util.Date();

        java.util.Date lastDate = new java.util.Date();

        java.util.Date bizDate = (Date)pkBizDate.getValue();

        java.util.Calendar calendar = java.util.Calendar.getInstance();

        calendar.setTime(nowdate);

        calendar.add(calendar.MONTH, -1);

        beforeDate = calendar.getTime();

        calendar.add(calendar.MONTH, 2);

        lastDate = calendar.getTime();        

        if (bizDate.before(beforeDate) || bizDate.after(lastDate))

        {

            MsgBox.showInfo("业务日期已经超过1个月,请注意!");

        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
UmadeIt_ok
2014-10-17 · 超过20用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:32.9万
展开全部
public int getDateInterval(String startDate, String endDate)
throws RuntimeException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
Date date1, date2;
try {
date1 = formatter.parse(startDate);
date2 = formatter.parse(endDate);
cal1.setTime(date1);
cal2.setTime(date2);
return cal2.get(Calendar.DAY_OF_YEAR)
- cal1.get(Calendar.DAY_OF_YEAR);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}

就这个,返回的结果是开始日期与结束日期的差值

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式