java判斷日期代碼 java判斷日期是否在范圍內(nèi)

java判斷是否是日期

樓主提出的問(wèn)題有點(diǎn)片面,我的理解是,你是不是想判斷字符串是不是日期格式?如果已經(jīng)是日期類(lèi)型,那就不需要判斷了,對(duì)把。判斷給定字符串是不是日期我給你提供兩種解決思路,一種是用正則,代碼我給你寫(xiě)好了。

我們擁有十載網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供網(wǎng)站制作、成都網(wǎng)站制作、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、手機(jī)網(wǎng)站開(kāi)發(fā)、HTML5、等業(yè)務(wù)。無(wú)論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專(zhuān)業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。

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點(diǎn)抗 pile(rexp);

Matcher?mat?=?pat.matcher(date);

boolean?dateType?=?mat.matches();

return?dateType;

}

參數(shù)就是你要判斷的日期字符串,返回布爾值;

另一種方式就是:玩字符串正則才是王道嘛!希望采納

public?boolean?isValidDate(String?str)?{

boolean?convertSuccess?=?true;

//?指定日期格式為四位年/兩位月份/兩位日期,注意yyyy/MM/dd區(qū)分大小寫(xiě);

//如果想判斷格式為yyyy-MM-dd,需要寫(xiě)成-分隔符的形式

SimpleDateFormat?format?=?new?SimpleDateFormat("yyyy/MM/dd?HH:mm");

try?{

format.setLenient(false);

format.parse(str);

}?catch?(ParseException?e)?{

//?e.printStackTrace();

//?如果拋出ParseException或者NullPointerException,就說(shuō)明格式不對(duì)

convertSuccess?=?false;

}

return?convertSuccess;

}

推薦使用正則,

做個(gè)日期查詢,判斷開(kāi)始日期與終止日期范圍必須在一個(gè)月之內(nèi),用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 {

/**

* 判斷是否在同一個(gè)月

* @param startDate yyyy-MM-dd

* @param endDate yyyy-MM-dd

* @return false:不在同一個(gè)月內(nèi),true在同一個(gè)月內(nèi)

*/

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;

}

}

/**

* 計(jì)算開(kāi)始日期和結(jié)束日期差

* @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方法測(cè)試

* @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?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是因?yàn)閺闹苋臻_(kāi)始

//?本周一的日期

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

}

這一段代碼可以獲取本周一的日期、本周日的日期,比如本周一為20180702、本周日為20180708。只要判斷給定的日期數(shù)字是否在[20180702, 20180708]范圍內(nèi)即可

以上的是判斷日期是否是本周的方法,至于本日和本月就很好判斷了,直接將日期格式化為20180702類(lèi)似的數(shù)字,然后與今天進(jìn)行比較即可判斷是否本日,與本月的字符串201807進(jìn)行比較,看字符串的前面6個(gè)字符是否equals即可

寫(xiě)一段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+")無(wú)效\n");

return

false;

}else

if(mon1

||

mon12){

msg.append("月份必須在(1~12)之間,輸入值("+mon+")無(wú)效\n");

return

false;

}else

if(day1

||

day31){

msg.append("日號(hào)必須在(1~31)之間,輸入值("+day+")無(wú)效\n");

return

false;

}else

if(mon==2){

if(isLeapYear(year)

day29){

msg.append("閏年的閏二月日號(hào)必須在(1~29)之間,"+year+"是閏年,輸入值("+day+")無(wú)效\n");

return

false;

}else

if(day28){

msg.append("非閏年的閏二月的日號(hào)必須在(1~28)之間,"+year+"不是閏年,輸入值("+day+")無(wú)效\n");

return

false;

}

}

return

true;

}

//閏年

static

public

boolean

isLeapYear(int

year){

return

(year%4==0

year%100!=0)||

year%400==0;

}

網(wǎng)頁(yè)題目:java判斷日期代碼 java判斷日期是否在范圍內(nèi)
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article0/ddcpoio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站制作、搜索引擎優(yōu)化、App設(shè)計(jì)、小程序開(kāi)發(fā)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化