code: def date_time_this_month(
              self,
              before_now=True,
              after_now=False,
              tzinfo=None):
          
          now = datetime.now(tzinfo)
          this_month_start = now.replace(
              day=1, hour=0, minute=0, second=0, microsecond=0)
  
          next_month_start = this_month_start + \
              relativedelta.relativedelta(months=1)
          if before_now and after_now:
              return self.date_time_between_dates(
                  this_month_start, next_month_start, tzinfo)
          elif not before_now and after_now:
              return self.date_time_between_dates(now, next_month_start, tzinfo)
          elif not after_now and before_now:
              return self.date_time_between_dates(this_month_start, now, tzinfo)
          else:
              return now
docs: Gets a DateTime object for the current month.
  
          :param before_now: include days in current month before today
          :param after_now: include days in current month after today
          :param tzinfo: timezone, instance of datetime.tzinfo subclass
          :example DateTime('2012-04-04 11:02:02')
          :return DateTime