(
T start,
T end
)
| 316 | } |
| 317 | |
| 318 | @Override |
| 319 | public long between( |
| 320 | T start, |
| 321 | T end |
| 322 | ) { |
| 323 | |
| 324 | PlainDate startDate = start.get(CALENDAR_DATE); |
| 325 | PlainDate endDate = end.get(CALENDAR_DATE); |
| 326 | |
| 327 | int startYOW = startDate.get(YOWElement.INSTANCE).intValue(); |
| 328 | int endYOW = endDate.get(YOWElement.INSTANCE).intValue(); |
| 329 | long delta = endYOW - startYOW; |
| 330 | |
| 331 | if (delta != 0) { |
| 332 | int startWOY = getWeekOfYear(startDate); |
| 333 | int endWOY = getWeekOfYear(endDate); |
| 334 | |
| 335 | if ((delta > 0) && (startWOY > endWOY)) { |
| 336 | delta--; |
| 337 | } else if ((delta < 0) && (startWOY < endWOY)) { |
| 338 | delta++; |
| 339 | } |
| 340 | |
| 341 | if ((delta != 0) && (startWOY == endWOY)) { |
| 342 | int startDOW = startDate.getDayOfWeek().getValue(); |
| 343 | int endDOW = endDate.getDayOfWeek().getValue(); |
| 344 | |
| 345 | if ((delta > 0) && (startDOW > endDOW)) { |
| 346 | delta--; |
| 347 | } else if ((delta < 0) && (startDOW < endDOW)) { |
| 348 | delta++; |
| 349 | } |
| 350 | |
| 351 | if ( |
| 352 | (delta != 0) |
| 353 | && (startDOW == endDOW) |
| 354 | && start.contains(WALL_TIME) |
| 355 | && end.contains(WALL_TIME) |
| 356 | ) { |
| 357 | PlainTime t1 = start.get(WALL_TIME); |
| 358 | PlainTime t2 = end.get(WALL_TIME); |
| 359 | |
| 360 | if ((delta > 0) && t1.isAfter(t2)) { |
| 361 | delta--; |
| 362 | } else if ((delta < 0) && t1.isBefore(t2)) { |
| 363 | delta++; |
| 364 | } |
| 365 | } |
| 366 | } |
| 367 | } |
| 368 | |
| 369 | return delta; |
| 370 | |
| 371 | } |
| 372 | |
| 373 | } |
| 374 |
nothing calls this directly
no test coverage detected