Java 我如何通过跳过周末来增加一天
我如何通过跳过周末来增加一天。我的意思是如果Java 我如何通过跳过周末来增加一天,java,date,calendar,Java,Date,Calendar,我如何通过跳过周末来增加一天。我的意思是如果day=周五那么day+1=周一。请看一下我的增量方法,我增量一个日历日,而不是一个工作日 public Date incDay( Date date){ Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, 1); return cal.getTime(); } 我需要修改此方法以解决此问题 更新: 我像这样更新我的方法 public
day=周五
那么day+1=周一
。请看一下我的增量方法,我增量一个日历日,而不是一个工作日
public Date incDay( Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, 1);
return cal.getTime();
}
我需要修改此方法以解决此问题
更新:
我像这样更新我的方法
public Date incDay(Date date){
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
// public final static int FRIDAY = 6;
final int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.FRIDAY) {
cal.add(Calendar.DATE, 3);
}else{
cal.add(Calendar.DATE, 1);
}
System.out.println(cal.getTime());
return cal.getTime();
}
Main():
public static void main(String[] args) throws ParseException {
Date d=incBusiness(new Date(2017, 02, 17));//2017/02/18
}
我得到的是2017/02/18而不是2017/02/20Calendar类有常数来检查一周中的哪一天: 周五是一周中的第六天,做一个if-else可以解决问题
public static void foo() throws ParseException {
String dateString = "2017/02/17";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");// "2017/02/17";
Date date = df.parse(dateString);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) {
cal.add(Calendar.DATE, 3);
} else {
cal.add(Calendar.DATE, 1);
}
System.out.println(cal.getTime());
}
获取日期实例并添加不包括周末的天数。如果提供的日期是周末,则将日期设置为下周一
public Date addDays(Date date, int days){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
//set date to next monday if provided date day is weekend
//use this section according to your need.
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
cal.add(Calendar.DATE,2);
//days-= 2;
}else if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
cal.add(Calendar.DATE,1);
//days--;
}
//add days one by one
while(days > 0){
//if current day is friday add 3 days to skip saturday and sunday
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY){
cal.add(Calendar.DATE,3);
//else add one day
}else{
cal.add(Calendar.DATE,1);
}
//decrements day counter
days--;
}
return cal.getTime();
}
什么c变量表示它没有声明,我有一个错误?如果它是cal…typo?并且==FRIDAY不接受它,我有erroryeap。。。它必须是“cal”作为日历是的..它应该工作..我看不到任何问题..让它成为日历.星期五你能解释更多你的代码吗!仅供参考,麻烦的旧日期时间类(如和)现在已被类取代。