java節假日
A. 一段可以跳過周末和節假日的java程序怎麼寫
publicstaticbooleanisWeekend(Datedate){
Calendarcal=Calendar.getInstance();
cal.setTime(date);
intresult=cal.get(Calendar.WEEK_OF_MONTH);
if(result==Calendar.SATURDAY||result==Calendar.SUNDAY){
returntrue;
}
returnfalse;
}
這段代碼只是判斷是不是周末,節假日的話只能通過某些數據配置來判斷了。節假日是沒法計算的。
B. 使用java 排除 兩個日期段中的 休息日和節假日 。在線等待中十萬火急,求大牛幫忙,多謝了。。。。
時間處理,更方便和更易讀的代碼角度講,肯定要用Java8的新date api啦,由於涉及到一系列日期,所以結合Java8的Stream也是理所當然
總體思路:
由於節假日每年在變,所以需要羅列出所有的節假日集合A
生成2016-01-01 至 2016-05-01所有的日期,生成日期集合B
從B中過濾掉A中的節假日
從B中過濾掉周六周日
最後把B中集合列印
結合思路,所見即所得的代碼如下:
//所有節假日的日期集合,這里你可以自己添加,只寫了兩個僅供參考(完成思路1)
List<LocalDate>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中的實際間隔天數截斷Stream(完成思路2)
.limit(ChronoUnit.DAYS.between(LocalDate.parse("2016-01-01"),LocalDate.parse("2016-05-01")))
//過濾其中的節假日(完成思路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))))
//列印最後結果(完成思路5)
.forEach(System.out::println);
列印的結果:
綜上:結合新時間API的易用性+Stream處理集合的快捷性,寫出代碼還是很簡潔的
C. 用java做一個在每個節假日發送郵件的小列子
Java 起一個Timer線程,每天0點,就獲取日期,然後判斷該日期是否為節日,這個你要提供個節日庫給它。不然它怎麼知道當天是否為節日。判斷是節日就發郵件,不是就什麼都不做。
另外還可以結合Window的計劃任務來做,但是不怎好。
D. java調用百度介面判斷日期是否是工作日 周末還是節假日
package com.qms.utils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
public class holiday {
/**
* @param urlAll
* :請求介面
* @param httpArg
* :參數
* @return 返回結果
*/
public static String request( String httpArg) {
String httpUrl="http://www.easybots.cn/api/holiday.php";
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?d=" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
Map<String,Object> map=JsonUtil.toMap(result);
String res=(String)map.get(httpArg);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
//判斷今天是否是工作日 周末 還是節假日
SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd");
String httpArg=f.format(new Date());
System.out.println(httpArg);
String jsonResult = request(httpArg);
Map<String,Object> map=JsonUtil.toMap(jsonResult);
String res=(String)map.get(f.format(new Date()));
System.out.println(res);
//0 上班 1周末 2節假日
}
}
E. 用java實現在控制台輸出一年中所有節假日!
因為很多的節假日,沒有規律性。所以程序實現只有寫死日期。
可以做一個配置文件,手工填寫假日信息,然後再由java顯示出來。
F. 用Java編寫的日歷記事本中怎樣使節假日的顏色更為突出
JComponent顯示的文本允許使用HTML標記,利用<Font>標記即可很簡單的實現這個功能。
G. java調用百度介面判斷日期是否是工作日 周末還是節假日
package com.qms.utils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
public class holiday {
/**
* @param urlAll
* :請求介面
* @param httpArg
* :參數
* @return 返回結果
*/
public static String request( String httpArg) {
String httpUrl="ay.php";
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?d=" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
Map<String,Object> map=JsonUtil.toMap(result);
String res=(String)map.get(httpArg);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
//判斷今天是否是工作日 周末 還是節假日
SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd");
String httpArg=f.format(new Date());
System.out.println(httpArg);
String jsonResult = request(httpArg);
Map<String,Object> map=JsonUtil.toMap(jsonResult);
String res=(String)map.get(f.format(new Date()));
System.out.println(res);
//0 上班 1周末 2節假日
}
}
H. java 如何判斷日期是不是節假日
沒有此方法,只能判斷是星期幾。因為中國的節假日是農歷!而java不是中國人搞出來的!。