| 560 | |
| 561 | |
| 562 | class YearBegin(YearOffset): |
| 563 | _freq = "YS" |
| 564 | _day_option = "start" |
| 565 | _default_month = 1 |
| 566 | |
| 567 | def onOffset(self, date) -> bool: |
| 568 | """Check if the given date is in the set of possible dates created |
| 569 | using a length-one version of this offset class.""" |
| 570 | return date.day == 1 and date.month == self.month |
| 571 | |
| 572 | def rollforward(self, date): |
| 573 | """Roll date forward to nearest start of year""" |
| 574 | if self.onOffset(date): |
| 575 | return date |
| 576 | else: |
| 577 | return date + YearBegin(month=self.month) |
| 578 | |
| 579 | def rollback(self, date): |
| 580 | """Roll date backward to nearest start of year""" |
| 581 | if self.onOffset(date): |
| 582 | return date |
| 583 | else: |
| 584 | return date - YearBegin(month=self.month) |
| 585 | |
| 586 | |
| 587 | class YearEnd(YearOffset): |
no outgoing calls
no test coverage detected
searching dependent graphs…