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

createh53个月前 (02-01)技术教程21

程序源代码

/**

*

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);

}

}

运行结果图:

相关文章

2022年Android面试题及答案收集(不断更新中)

前言找工作、招人必备之良品。后期不断完善中……如何招聘人,搜集了一些知识点。如何做好应聘准备,也收集了一些主要知识点,供你参考。Android基础知识:基本涵盖Android所有知识体系,四大组件,F...

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

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

抖音 Android 性能优化系列:Java 锁优化

背景Java 多线程开发中为了保证数据的一致性,引入了同步锁(synchronized)。但是,对锁的过度使用,可能导致卡顿问题,甚至 ANR:Systrace 中的主线程因为等锁阻塞了绘制,导致卡顿...