java严格验证日期是否正确的代码
package com.xxxx.util; /**
* 输入日期 并进行验证格式是否正确
*/
public class FDate { public static void main(String[] args) {
System.out.println(validate("2018-06-30t"));
} /**
* 检查是否是闰年
*
* @param year
* @return
*/
public static boolean run(int year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {// 是闰年
// System.out.print(year + "是闰年! ");
return true;
} else {
return false;
}
} public static boolean validate(String dateStr) {
String msg ="";
String[] data = new String[3];
boolean flag = true; // 若不符合规则将值改为false
String year = "[0-9]{4}";// 年
String month = "[0-9]||0[0-9]||1[12]";// 月
String day = "[0-9]||[0-2][0-9]||3[01]";// 天
int YEAR = 0;
String str = dateStr;// 输入的字符串
data = str.split("[-/.+]");
// 最基本的检查格式 begin
if (!data[0].matches(year)) {
msg = "年不对";
flag = false;
}
if (!data[1].matches(month)) {
msg = "月不对";
flag = false;
}
if (!data[2].matches(day)) {
msg = "日不对";
flag = false;
}
// end
YEAR = Integer.valueOf(data[0]);
boolean run = run(YEAR);// run 为true是闰年否则是 非闰年
if (run) {// 闰年
if (data[1].matches("0[2]||2")) {// 这里是闰年的2月
if (!data[2].matches("0[1-9]||[1-9]||1[0-9]||2[0-9]")) {
flag = false;
msg = "2月份的天数不对";
}
}
} else {// 非闰年
if (data[1].matches("0[2]||2")) {// 这里是平年的2月
if (!data[2].matches("0[1-9]||[1-9]||1[0-9]||2[0-8]")) {
flag = false;
msg = "2月份的天数不对";
}
}
} // 下面判断除了2月份的大小月天数
if (data[1].matches("0[13578]||[13578]||1[02]")) {// 这里是大月
if (!data[2].matches("0[1-9]||[1-9]||[12][0-9]||3[01]")) {
flag = false;
msg = data[2] + " 天数不对";
}
} else if (data[1].matches("0[469]||[469]||11")) {// 这里是小月
if (!data[2].matches("0[1-9]||[1-9]||[12][0-9]||30")) {
flag = false;
msg = data[2] + " 天数不对";
}
} if (flag) {
msg = "日期格式正确";
} return flag;
} }
java严格验证日期是否正确的代码的更多相关文章
- java mail实现Email的发送,完整代码
java mail实现Email的发送,完整代码 1.对应用程序配置邮件会话 首先, 导入jar <dependencies> <dependency> <groupId ...
- Java 8 时间日期库的20个使用示例
java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ...
- 填坑:Java 中的日期转换
我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...
- Java 后台验证的工具类
Java 后台验证的工具类 public class ValidationUtil { //手机号 public static String mobile = "^( ...
- Java实现MD5加密及解密的代码实例分享
链接:http://www.jb51.net/article/86027.htm Java实现MD5加密及解密的代码实例分享 作者:厦门大学陈黎栋 字体:[增加 减小] 类型:转载 时间:2016-0 ...
- 使用oVal进行Java Bean 验证的注意事项
如果需要不同条件验证不同的属性的时候,需要使用profiles属性,每个校验注解符中都有.注意:oVal默认是启用所有的profiles,所以在对单独一个profile进行启用的时候,需要先disab ...
- Java 8 时间日期库的20个使用演示样例
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务演示样例来学习怎样使用Java 8的这套API.Java对日 ...
- Java中的日期操作 分类: B1_JAVA 2015-02-16 17:55 6014人阅读 评论(0) 收藏
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- Java Hour 50 日期类型
Plan List: 1 Java 中的日期类型 2 mysql 相关 3 java code style 鉴于本问题太过普通,所以参考文章满大街都是,因此本文内容基本为转载和验证. java.sql ...
随机推荐
- Jquery学习之路(一) 实现checkbox全选方法
昨天早上有写到怎么利用Jquery实现全选 根据大家的意见对程序中一些写法不好的地方进行了修改,也是本人水平有限,存在各种考虑不到的地方. 文章最后我提出了一个问题,要写一个通用的方法来调用,于是就有 ...
- 牛客小白月赛6 指纹锁(set容器的骚操作)
原题地址: 题目描述 HA实验有一套非常严密的安全保障体系,在HA实验基地的大门,有一个指纹锁. 该指纹锁的加密算法会把一个指纹转化为一个不超过1e7的数字,两个指纹数值之差越小,就说 ...
- Codeforces 1025D Recovering BST
这个题被wa成傻逼了.... ma[i][j]表示i,j能不能形成一条直接作为排序二叉树的边,n^3更新维护ma即可,按说应该是要爆复杂度的,数据玄学吧.. #include<iostream& ...
- Bluetooth篇 开发实例之十一 官网的Bluetooth Chat sample的bug
当没有匹配的设备和没有找到可用设备的时候. // If there are paired devices, add each one to the ArrayAdapter if (pairedDev ...
- 玩转Nuget服务器搭建(三)
前两篇已经介绍了如何打包.如何搭建nuget server web站点,接下来让我们介绍一下,如何在我们的vs中访问我们自己搭建的nuget服务器中的包. vs访问我们自己的nuget服务器中的包 ...
- PHP switch的“高级”用法详解
只所以称为“高级”用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实还是它的基础用法! switch 语句和具有同样表达式的一系列的 IF 语句相似.很多场合下需要把同一个变 ...
- sqlserver 出现sql被锁时,查看加锁和被锁的sql
原文:sqlserver 出现sql被锁时,查看加锁和被锁的sql DECLARE @spid INT DECLARE @blk INT DECLARE @count INT DECLARE @ind ...
- Vue 基础的开发环境
本期节目将手把手教你去 NPM 市场买最新鲜的食材,只为搭配 小鲜肉 Vue 下厨. 既然它是当红小鲜肉,我想有必要写一篇文章来帮助大家配置好 Vue 的生产环境,我给它的总体评价是“简单却不失优雅, ...
- java实现点选汉字验证码(自己修改后的)
参考:http://blog.csdn.net/qq_26680031/article/details/51168527 package com.rd.p2p.web; import java.awt ...
- [置顶]
kubernetes资源类型--Service
为了适应快速的业务需求,微服务架构已经逐渐成为主流,微服务架构的应用需要有非常好的服务编排支持.K8S中的核心要素Service便提供了一套简化的服务代理和发现机制,天然适应微服务架构. 实现原理 S ...