做个日期查询,判断开始日期与终止日期范围必须在一个月之内,用java代码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"));
}
}
java判断是否是日期楼主提出的问题有点片面,我的理解是,你是不是想判断字符串是不是日期格式?如果已经是日期类型,那就不需要判断了,对把 。判断给定字符串是不是日期我给你提供两种解决思路,一种是用正则,代码我给你写好了 。
public boolean isDate(String date) {
/**
* 判断日期格式和范围
*/
String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
Pattern pat = Pattern.compile(rexp);
Matcher mat = pat.matcher(date);
boolean dateType = mat.matches();
return dateType;
}
参数就是你要判断的日期字符串 , 返回布尔值;
另一种方式就是:玩字符串正则才是王道嘛!希望采纳
public boolean isValidDate(String str) {
boolean convertSuccess = true;
// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
//如果想判断格式为yyyy-MM-dd,需要写成-分隔符的形式
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm");
try {
format.setLenient(false);
format.parse(str);
} catch (ParseException e) {
// e.printStackTrace();
// 如果抛出ParseException或者NullPointerException , 就说明格式不对
convertSuccess = false;
}
return convertSuccess;
}
推荐使用正则 ,
java中如何判断输入的日期是否合法?java.text.DateFormat dateFormat= new java.text.SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);
//转换为util类型
看到dateFormat.setLenient(false);没有java日期判断代码 , 设定其为false就是强制判断是否非法日期java日期判断代码,不让系统自动转换,否则2月31号系统会自动转换为3月2号或者3号 。
写一段JAVA代码判断日期格式是否正确static public boolean isValidDate(
int year, int mon, int day,
short year_min,short year_max,
StringBuffer msg)
{
if(yearyear_min || yearyear_max)
{
msg.append("年份必须在("
year_min "~" year_max
")之间,输入值(" year ")无效\n");
return false;
【java日期判断代码 java判断日期在某区间内】}else if(mon1 || mon12){
msg.append("月份必须在(1~12)之间,输入值(" mon ")无效\n");
return false;
}else if(day1 || day31){
msg.append("日号必须在(1~31)之间,输入值(" day ")无效\n");
return false;
}else if(mon==2){
if(isLeapYear(year)day29){
msg.append("闰年的闰二月日号必须在(1~29)之间 , " year "是闰年,输入值(" day ")无效\n");
return false;
}else if(day28){
msg.append("非闰年的闰二月的日号必须在(1~28)之间," year "不是闰年,输入值(" day ")无效\n");
return false;
}
}
return true;
}
//闰年
static public boolean isLeapYear(int year){
return (year%4==0year0!=0)|| year@0==0;
}
Java判断日期是否是本日,本周,本月public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Calendar firstDayOfWeek = Calendar.getInstance(Locale.getDefault());
firstDayOfWeek.setFirstDayOfWeek(Calendar.MONDAY);
int day = firstDayOfWeek.get(Calendar.DAY_OF_WEEK);
firstDayOfWeek.add(Calendar.DATE, -day 1 1);// 后面的 1是因为从周日开始
// 本周一的日期
System.out.println(format.format(firstDayOfWeek.getTime()));
Calendar lastDayOfWeek = Calendar.getInstance(Locale.getDefault());
lastDayOfWeek.setFirstDayOfWeek(Calendar.MONDAY);
day = lastDayOfWeek.get(Calendar.DAY_OF_WEEK);
lastDayOfWeek.add(Calendar.DATE, 7-day 1);
// 本周星期天的日期
System.out.println(format.format(lastDayOfWeek.getTime()));
}
这一段代码可以获取本周一的日期、本周日的日期java日期判断代码 , 比如本周一为20180702、本周日为20180708 。只要判断给定的日期数字是否在[20180702, 20180708]范围内即可
以上的是判断日期是否是本周的方法java日期判断代码,至于本日和本月就很好判断java日期判断代码了java日期判断代码,直接将日期格式化为20180702类似的数字,然后与今天进行比较即可判断是否本日,与本月的字符串201807进行比较,看字符串的前面6个字符是否equals即可
关于java日期判断代码和java判断日期在某区间内的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 直播伴侣单反直播卡,直播伴侣更新后相机连接不了
- ERP系统生成采购订单的步骤,erp订单怎么生成
- erp系统的原理和机制有哪些,erp系统的基本原理
- 洗脚直播教程图片,专业洗脚视频教材
- linux环境搜索命令 linux搜索路径
- js如何将函数作为参数传递的简单介绍
- jquery手机端时间插件下载,jquery时间格式
- 电脑网页看虎牙直播闪退,电脑网页看虎牙直播闪退怎么回事
- 包含vb.netgmt的词条