时间计算除了2018-12月正确,为什么全部错误
南橘ryc 2019-01-04 03:46:27 不知道为什么,我看起来挺正确的
package cn.newer2019.j20190104.homework4;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
/*
* 任务:发放薪水
* 时间:每个月最后一个星期五
* 如果最后一个星期没有周五,则为倒数第二个星期五
* 计算发工资时间
*/
public class homework4 {
public static void main(String[] args) {
System.out.println("请输入年月:");
Scanner sc =new Scanner(System.in);
String temp =sc.nextLine();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM");
SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd");
try {
Date date =sdf.parse(temp);
Date next =nextSign(date);
System.out.println("工资发放日期为:"+sdf1.format(next));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Date nextSign(Date date) {
Calendar cal =Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(cal.get(Calendar.MONTH)));
int weekday =cal.get(Calendar.DAY_OF_WEEK);
if(weekday<=6) {
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
}else {
cal.add(Calendar.WEEK_OF_MONTH, -1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
}
return cal.getTime();
}
}