MCPcopy Create free account
hub / github.com/6tail/lunar-java / fix

Method fix

src/main/java/com/nlf/calendar/util/HolidayUtil.java:188–223  ·  view source on GitHub ↗

修正或追加节假日数据。节假日名称下标从0开始,超过9的,按ASCII码表依次往后排列;调休标识0为上班,否则放假 @param names 用于替换默认的节假日名称列表,传null即可使用默认名称 @param data 需要修正或追加的节假日数据,每18位表示1天依次排列,格式:当天年月日YYYYMMDD(8位)+节假日名称下标(1位)+调休标识(1位)+节假日当天YYYYMMDD(8位)。例:202005023120200501代表2020-05-02为劳动节放假,对应节假日为2020-05-01

(String[] names, String data)

Source from the content-addressed store, hash-verified

186 * @param data 需要修正或追加的节假日数据,每18位表示1天依次排列,格式:当天年月日YYYYMMDD(8位)+节假日名称下标(1位)+调休标识(1位)+节假日当天YYYYMMDD(8位)。例:202005023120200501代表2020-05-02为劳动节放假,对应节假日为2020-05-01
187 */
188 public static void fix(String[] names, String data){
189 if(null != names){
190 NAMES_IN_USE = names;
191 }
192 if(null == data){
193 return;
194 }
195 StringBuilder append = new StringBuilder();
196 while(data.length() >= SIZE){
197 String segment = data.substring(0, SIZE);
198 String day = segment.substring(0, 8);
199 boolean remove = TAG_REMOVE.equals(segment.substring(8, 9));
200 Holiday holiday = getHoliday(day);
201 if(null == holiday){
202 if (!remove) {
203 append.append(segment);
204 }
205 }else{
206 int nameIndex = -1;
207 for(int i = 0,j = NAMES_IN_USE.length; i < j; i++){
208 if(NAMES_IN_USE[i].equals(holiday.getName())){
209 nameIndex = i;
210 break;
211 }
212 }
213 if(nameIndex>-1) {
214 String old = day + (char)(nameIndex + ZERO) + (holiday.isWork() ? ZERO : '1') + holiday.getTarget().replace("-","");
215 DATA_IN_USE = DATA_IN_USE.replace(old, remove ? "" : segment);
216 }
217 }
218 data = data.substring(SIZE);
219 }
220 if(append.length() > 0){
221 DATA_IN_USE += append.toString();
222 }
223 }
224
225 /**
226 * 使用默认的节假日名称来修正或追加节假日数据。节假日名称下标从0开始,最大为8(元旦节0,春节1,清明节2,劳动节3,端午节4,中秋节5,国庆节6,国庆中秋7,抗战胜利日8);调休标识0为上班,否则放假

Callers 2

testMethod · 0.95
testRemoveMethod · 0.95

Calls 5

getHolidayMethod · 0.95
getNameMethod · 0.95
isWorkMethod · 0.95
getTargetMethod · 0.95
toStringMethod · 0.45

Tested by 2

testMethod · 0.76
testRemoveMethod · 0.76