def date_match?(zt)

      return false unless sub_match?(zt, :day, @days)
      return false unless sub_match?(zt, :month, @months)

      return true if (
      (@weekdays && @monthdays) &&
        (sub_match?(zt, :wday, @weekdays) ||
          sub_match?(zt, :monthdays, @monthdays)))

      return false unless sub_match?(zt, :wday, @weekdays)
      return false unless sub_match?(zt, :monthdays, @monthdays)

      true
    end
def date_match?(zt)

      return false unless sub_match?(zt, :day, @days)
      return false unless sub_match?(zt, :month, @months)

      return true if (
      (@weekdays && @monthdays) &&
        (sub_match?(zt, :wday, @weekdays) ||
          sub_match?(zt, :monthdays, @monthdays)))

      return false unless sub_match?(zt, :wday, @weekdays)
      return false unless sub_match?(zt, :monthdays, @monthdays)

      true
    end
def monthday_match?(zt, values)

      return true if values.nil?

      today_values = monthdays(zt)

      (today_values & values).any?
    end