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不是中国人搞出来的!。