亚洲AVI,黑人巨茎大战欧美白妇,初高中生洗澡自慰高清网站,欧美日韩无砖专区一中文字

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務

java放假代碼,JaVa代碼

使用java 排除 兩個日期段中的 休息日和節(jié)假日 。在線等待中十萬火急,求大牛幫忙,多謝了。。。。

時間處理,更方便和更易讀的代碼角度講,肯定要用Java8的新date api啦,由于涉及到一系列日期,所以結(jié)合Java8的Stream也是理所當然

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設、網(wǎng)站重做改版、通道網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5建站成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為通道等各大城市提供網(wǎng)站開發(fā)制作服務。

總體思路:

由于節(jié)假日每年在變,所以需要羅列出所有的節(jié)假日集合A

生成2016-01-01 至 2016-05-01所有的日期,生成日期集合B

從B中過濾掉A中的節(jié)假日

從B中過濾掉周六周日

最后把B中集合打印

結(jié)合思路,所見即所得的代碼如下:

//?所有節(jié)假日的日期集合,這里你可以自己添加,只寫了兩個僅供參考(完成思路1)

ListLocalDate?holidays?=?Arrays.asList(LocalDate.parse("2016-01-01"),?LocalDate.parse("2016-05-01"));

//?按照起始2016-01-01,每次遞增一天的方式生成一個Stream

Stream.iterate(LocalDate.parse("2016-01-01"),?localDate?-?localDate.plusDays(1))

//?按照要求的時間間隔2016-01-01?至?2016-05-01中的實際間隔天數(shù)截斷Stream(完成思路2)

.limit(ChronoUnit.DAYS.between(LocalDate.parse("2016-01-01"),?LocalDate.parse("2016-05-01")))

//?過濾其中的節(jié)假日(完成思路3)

.filter(localDate?-?!holidays.contains(localDate))

//?過濾其中的周六

.filter(localDate?-?!DayOfWeek.SATURDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))

//?過濾其中的周日(完成思路4)

.filter(localDate?-?!DayOfWeek.SUNDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))

//?打印最后結(jié)果(完成思路5)

.forEach(System.out::println);

打印的結(jié)果:

綜上:結(jié)合新時間API的易用性+Stream處理集合的快捷性,寫出代碼還是很簡潔的

用java實現(xiàn)在控制臺輸出一年中所有節(jié)假日!

因為很多的節(jié)假日,沒有規(guī)律性。所以程序?qū)崿F(xiàn)只有寫死日期。

可以做一個配置文件,手工填寫假日信息,然后再由java顯示出來。

用java 進行日期計算,獲取當前天+1天,周末節(jié)假日不算,在線等待中,十萬火急……

遲來的答案

1.周末版本(不含節(jié)假日判斷)

注意:最下面是使用的 遞歸算法

/**

?*?獲得收益時間(獲取當前天+1天,周末不算).

?*

?*?@param?date

?*????????????任意日期

?*?@return?the?income?date

?*?@throws?NullPointerException

?*?????????????if?null?==?date

?*/

private?Date?getIncomeDate(Date?date)?throws?NullPointerException{

if?(null?==?date){

throw?new?NullPointerException("the?date?is?null?or?empty!");

}

//對日期的操作,我們需要使用?Calendar?對象

Calendar?calendar?=?new?GregorianCalendar();

calendar.setTime(date);

//+1天

calendar.add(Calendar.DAY_OF_MONTH,?+1);

//判斷是星期幾

int?dayOfWeek?=?calendar.get(Calendar.DAY_OF_WEEK);

Date?incomeDate?=?calendar.getTime();

if?(dayOfWeek?==?1?||?dayOfWeek?==?7){

//遞歸

return?getIncomeDate(incomeDate);

}

return?incomeDate;

}

測試方法:

@Test

public?void?testGetIncomeDate()?throws?ParseException{

String?pattern?=?"yyyy-MM-dd?HH:mm:ss";

SimpleDateFormat?simpleDateFormat?=?new?SimpleDateFormat(pattern);

System.out.println(simpleDateFormat.format(getIncomeDate(new?Date())));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-07-31?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-01?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-02?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-03?13:33:05"))));

}

輸出結(jié)果:

2014-08-01?13:48:09

2014-08-01?13:33:05

2014-08-04?13:33:05

2014-08-04?13:33:05

2014-08-04?13:33:05

注意:返回的是 時間+1的時間,精度是到毫秒 納秒,如果有特殊需求,需要自己再處理下

2.周末+節(jié)假日版本

/**

?*?獲得收益時間(獲取當前天+1天,周末不算).

?*

?*?@param?date

?*????????????任意日期

?*?@return?the?income?date

?*?@throws?NullPointerException

?*?????????????if?null?==?date

?*/

private?Date?getIncomeDate(Date?date)?throws?NullPointerException{

if?(null?==?date){

throw?new?NullPointerException("the?date?is?null?or?empty!");

}

//對日期的操作,我們需要使用?Calendar?對象

Calendar?calendar?=?new?GregorianCalendar();

calendar.setTime(date);

//+1天

calendar.add(Calendar.DAY_OF_MONTH,?+1);

Date?incomeDate?=?calendar.getTime();

if?(isWeekend(calendar)?||?isHoliday(calendar)){

//遞歸

return?getIncomeDate(incomeDate);

}

return?incomeDate;

}

/**

?*?判斷一個日歷是不是周末.

?*

?*?@param?calendar

?*????????????the?calendar

?*?@return?true,?if?checks?if?is?weekend

?*/

private?boolean?isWeekend(Calendar?calendar){

//判斷是星期幾

int?dayOfWeek?=?calendar.get(Calendar.DAY_OF_WEEK);

if?(dayOfWeek?==?1?||?dayOfWeek?==?7){

return?true;

}

return?false;

}

/**

?*?一個日歷是不是節(jié)假日.

?*

?*?@param?calendar

?*????????????the?calendar

?*?@return?true,?if?checks?if?is?holiday

?*/

private?boolean?isHoliday(Calendar?calendar){

String?pattern?=?"yyyy-MM-dd";

SimpleDateFormat?simpleDateFormat?=?new?SimpleDateFormat(pattern);

String?dateString?=?simpleDateFormat.format(calendar.getTime());

//節(jié)假日?這個可能不同地區(qū),不同年份?都有可能不一樣,所以需要有個地方配置,?可以放數(shù)據(jù)庫,?配置文件,環(huán)境變量?等等地方

//這里以配置文件?為例子

ResourceBundle?resourceBundle?=?ResourceBundle.getBundle("holidayConfig");

String?holidays?=?resourceBundle.getString("holiday");

String[]?holidayArray?=?holidays.split(",");

boolean?isHoliday?=?org.apache.commons.lang.ArrayUtils.contains(holidayArray,?dateString);

return?isHoliday;

}

配置文件:

holiday=2014-10-01,2014-10-02,2014-10-03,2014-10-04,2014-10-05,2014-10-06,2014-10-07

測試方法 :

/**

?*?Testenclosing_type.

?*

?*?@throws?ParseException

?*?????????????the?parse?exception

?*/

@Test

public?void?testGetIncomeDate()?throws?ParseException{

String?pattern?=?"yyyy-MM-dd?HH:mm:ss";

SimpleDateFormat?simpleDateFormat?=?new?SimpleDateFormat(pattern);

System.out.println(simpleDateFormat.format(getIncomeDate(new?Date())));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-07-31?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-01?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-02?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-03?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-09-30?13:33:05"))));

System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-10-02?13:33:05"))));

}

結(jié)果:

2014-08-01?15:14:59

2014-08-01?13:33:05

2014-08-04?13:33:05

2014-08-04?13:33:05

2014-08-04?13:33:05

2014-10-08?13:33:05

2014-10-08?13:33:05

一段可以跳過周末和節(jié)假日的java程序怎么寫

public?static?boolean?isWeekend(Date?date)?{

Calendar?cal?=?Calendar.getInstance();

cal.setTime(date);

int?result?=?cal.get(Calendar.WEEK_OF_MONTH);

if?(result?==?Calendar.SATURDAY?||?result?==?Calendar.SUNDAY)?{

return?true;

}

return?false;

}

這段代碼只是判斷是不是周末,節(jié)假日的話只能通過某些數(shù)據(jù)配置來判斷了。節(jié)假日是沒法計算的。


文章標題:java放假代碼,JaVa代碼
網(wǎng)頁路徑:http://news.spvevtbd.cn/article/heicsh.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP