Java数组数据的操作之检查日期格式是否正确

createh51个月前 (02-01)技术教程10

程序源代码

/**

*

Title:数组数据的操作

*@author author

*version 0.1

*/

public class myArray034

{

//初始化数组变量

char[] cNum = {'1','2','3','4','5','6','7','8','9','0'};

int[] iMonth={31,28,31,30,31,30,31,31,30,31,30,31};

/**

*
方法说明:判断是否是数字

*
输入参数:String sPara。 需要判断的字符串

*
返回类型:boolean。如果都是数字类型,返回true;否则返回false

*/

public boolean isNumber(String sPara){

int iPLength = sPara.length();

for(int i=0;i

char cTemp = sPara.charAt(i);

boolean bTemp = false;

for(int j=0;j

if(cTemp==cNum[j]){

bTemp = true;

break;

}

}

if(!bTemp) return false;

}

return true;

}

/**

*
方法说明:判断是否是闰年

*
输入参数:int iPara。要判断的年份

*
返回类型:boolean。如果是闰年返回true,否则返回false

*/

public boolean chickDay(int iPara){

return iPara%100==0&&iPara%4==0;

}

/**

*
方法说明:检查日期格式是否正确

*
输入参数:String sPara。要检查的日期字符

*
返回类型:int 0 日期格式正确,-1月或这日不合要求,-2年月日格式不正确

*/

public int chickData(String sPara){

boolean bTemp = false;

//所输入日期长度不正确

if(sPara.length()!=10)return -2;

//获取年

String sYear = sPara.substring(0,4);

//用方法substring截取sPara中从0开始至4结束时的字符串,并将其赋值给sYear;

//判断年是否为数字

if(!isNumber(sYear))return -2;

//获取月份

String sMonth = sPara.substring(5,7);

//用方法substring截取sPara中从5开始至7结束时的字符串,并将其赋值给sMonth;

//判断月份是否为数字

if(!isNumber(sMonth))return -2;

// 获取日

String sDay = sPara.substring(8,10);

//判断日是否为数字

if(isNumber(sDay))return -2;

//将年,月,日转换为数字

int iYear = Integer.parseInt(sYear);

//Integer.parseInt方法:作用将字符串参数作为有符号的十进制整数进行解析

int iMon = Integer.parseInt(sMonth);

int iDay = Integer.parseInt(sDay);

if(iMon>12)return -1;

//闰年二月处理

if(iMon==2&&chickDay(iYear)){

if(iDay>29)return 2;}else{if(iDay>iMonth[iMon-1]) return -1;}

return 0;

}

/**

*
方法说明:主程序

*
输入参数:

*
返回类型

*/

public static void main(String[] arges){

myArray mA = new myArray();

System.out.println("0 日期格式正确,-1 月或这日不合要求, -2 年月日格式不正确 ");

System.out.println("2003-12-89");

int iIsTime = mA.chickData("2003-12-89");

System.out.println("1:iIsTime="+iIsTime);

System.out.println("2003-111-08");

iIsTime = mA.chickData("2003-111-08");

System.out.println("2:iIsTime="+iIsTime);

System.out.println("2003-10-08");

iIsTime = mA.chickData("2003-10-08");

System.out.println("3:iIsTime="+iIsTime);

System.out.println("2000-02-30");

iIsTime = mA.chickData("2000-02-30");

System.out.println("4:iIsTime="+iIsTime);

}

}

运行结果图:

相关文章

protobuf之序列化数据和反序列化数据基础知识

什么是 protobufProtocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。Protocol Buffers 是一种语言无关、平台无关、可扩展的...

在Java里如何读取文件(java读取文件全部内容)

1.概述在这篇文章里, 我们将探索不同的方式从文件中读取数据。首先, 学习通过标准的的Java类,从classpath、URL或者Jar中加载文件。然后,学习通用BufferedReader, Sca...

推荐10个堪称神器的学习网站(10个网站推荐)

每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。”今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老...

阿里开源MNNKit:基于MNN的移动端深度学习SDK,支持安卓和iOS

机器之心报道参与:一鸣、Jamin近来,有越来越多的深度学习框架开始面向移动端进行发展。近日,阿里也基于其 MNN 推理引擎开源了最新的 MNNKit 深度学习 SDK,安卓和 iOS 开发者都可以方...

Java中的字符串(String)最大长度限制

看String的源码可以看出来,String实际存储数据的是char value[],数组的长度是int类型,整数在java中是有限制的,我们通过源码来看看int类型对应的包装类Integer可以看到...