public static JSONObject calcHolidays(Date day , Integer type){//type = 1 春节,国庆 ; 2 除夕;3 其他
Calendar thatcal = Calendar.getInstance()
thatcal.setTime(day)
JSONObject result = new JSONObject()
//春节往前调一天
if(type == 1 && thatcal.get(Calendar.MONTH) < 6){
thatcal.add(Calendar.DATE , -1)
}else{
result.put(SimpleUtil.dfDay(thatcal.getTime()) , 1)
}
switch(thatcal.get(Calendar.DAY_OF_WEEK)){
// 周一 周二 周三 周四 周五 周六 周日 // 周一 周二 周三 周四 周五 周六 周日
// 26 27 28 29 30 31(假) 1(假) // 25 26 27 28 29 30(班) 31(除夕)
// 2(假) 3 4 5 6 7 8 // 1(假) 2(假) 3(假) 4(假) 5(假) 6(假) 7(班)
case 1 : //周日
if(type == 1){
for(int i = 0
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, -8)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}else if(type == 3) {
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, 2)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
break
// 周一 周二 周三 周四 周五 周六 周日 // 周一 周二 周三 周四 周五 周六 周日
// 25 26 27 28 29 30(假) 31(假) // 24 25 26 27 28 29(班) 30(班))
// 1(假) 2 3 4 5 6 7 // 31(除夕)1(假) 2(假) 3(假) 4(假) 5(假) 6(假)
case 2 : //周一
if(type == 1){
for(int i = 0
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
thatcal.add(Calendar.DATE, -8)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}else if(type == 3) {
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
break
// 周一 周二 周三 周四 周五 周六 周日 // 周一 周二 周三 周四 周五 周六 周日
// 24 25 26 27 28 29(班) 30(假) // 30 31(除夕)1(假) 2(假) 3(假) 4(假) 5(假) <- 29(班)
// 31(假) 1(假) 2 3 4 5 6 // 6(假) 7 8 9 10 11(班) 12
case 3: //周二
if(type == 1){
for(int i = 0
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
thatcal.add(Calendar.DATE, -8)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, 13)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}else if(type == 3) {
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}
break
// 周一 周二 周三 周四 周五 周六 周日 // 周一 周二 周三 周四 周五 周六 周日
// 23 24 25 26 27 28(班) 29(班) // 29 30 31(除夕)1(假) 2(假) 3(假) 4(假) <- 28(班)
// 30(假) 31(假) 1(假) 2 3 4 5 // 5(假) 6(假) 7 8 9 10(班) 11
case 4 : //周三
if(type == 1){
for(int i = 0
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
thatcal.add(Calendar.DATE, -9)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, 13)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}else if(type == 3) {
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, -1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}
break
// 周一 周二 周三 周四 周五 周六 周日 // 周一 周二 周三 周四 周五 周六 周日
// 29 30 31 1(假) 2(假) 3(假) 4(班) // 28 29 30 31(除夕)1(假) 2(假) 3(假) <- 27(班)
// 5 6 7 8 9 10 11 // 4(假) 5(假) 6(假) 7 8 9(班) 10
case 5 : //周四
if(type == 1){
for(int i = 0
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
thatcal.add(Calendar.DATE, -10)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, 13)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}else if(type == 3) {
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}
break
// 周一 周二 周三 周四 周五 周六 周日 // 周一 周二 周三 周四 周五 周六 周日
// 28 29 30 31 1(假) 2(假) 3(假) // 27 28 29 30 31(除夕)1(假) 2(假) <- 26(班)
// 4 5 6 7 8 9 10 // 3(假) 4(假) 5(假) 6(假) 7 8(班) 9
case 6 : //周五
if(type == 1){
for(int i = 0
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
thatcal.add(Calendar.DATE, -11)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, 13)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}else if(type == 3) {
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
break
// 周一 周二 周三 周四 周五 周六 周日 // 周一 周二 周三 周四 周五 周六 周日
// 27 28 29 30 31(假) 1(假) 2(假) // 26 27 28 29 30 31(除夕)1(假)
// 3 4 5 6 7 8 9 // 2(假) 3(假) 4(假) 5(假) 6(假) 7(班) 8(班)
case 7 : // 周六
if(type == 1){
for(int i = 0
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 0)
}else if(type == 3) {
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
thatcal.add(Calendar.DATE, 1)
result.put(SimpleUtil.dfDay(thatcal.getTime()), 1)
}
break
}
return result
}