判断输入的日期是否合法,及润月问题(个人编写。仅供参考。如果有更好的思路敬请指教)

babe0556 2005-08-03 08:09:45
/*
* 创建日期 2005-8-2
*
* 作者:babe0555
*
*/
package test;
import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;

public class DATEBEAN {
/**
*
* @param Year
* @param Month
* @param Day
* @param Start_Year
* @param End_Year
* @return
*/
public static boolean CheckDATE(
int Year,
int Month,
int Day,
int Start_Year,
int End_Year) {
boolean flag = false;
GregorianCalendar cale = new GregorianCalendar();
int i_month[] = { 1, 3, 5, 7, 8, 10, 12 };
int j = i_month.length;
ArrayList arr_month = new ArrayList();
for (int i = 0; i < j; i++) {
arr_month.add(i_month[i] + "");
}
if (Year <= End_Year && Year >= Start_Year) {
if (Month < 13 && Month > 0) {
if (arr_month.contains(Month + "")) {
if (Day < 32 && Day > 0) {
flag = true;
}
} else {
if (cale.isLeapYear(Year)) {
if (Day < 30 && Day > 0) {
flag = true;
}
} else {
if (Day < 29 && Day > 0) {
flag = true;
}
}
}
}
}
return flag;
}
/**
*
* @param Year
* @param Month
* @param Day
* @param Start_Year
* @param End_Year
* @return
*/
public static boolean CheckDATE2(
int Year,
int Month,
int Day,
int Start_Year,
int End_Year) {
boolean flag = false;
if (Year <= End_Year && Year >= Start_Year) {
Date date = new Date(Year - 1900, Month - 1, Day);
int new_Year = date.getYear() + 1900;
int new_Month = date.getMonth() + 1;
int new_Day = date.getDate();
if (new_Year == Year && new_Month == Month && new_Day == Day) {
flag = true;
}
}
return flag;
}
public static void main(String[] args) {
System.out.println(DATEBEAN.CheckDATE(2004, 2, 29, 1997, 2005));
System.out.println(DATEBEAN.CheckDATE2(2004, 2, 29, 1997, 2005));
}
}
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
babe0556 2005-08-04
  • 打赏
  • 举报
回复
希望大家给点意见。
lei198203 2005-08-04
  • 打赏
  • 举报
回复
又见0分贴
moylaugh 2005-08-04
  • 打赏
  • 举报
回复
输入格式问题,建议考虑正则表达式

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧