def nth_day_of_month? d, n
      case n <=> 0
      when -1
        nth_last_day_of_month(d) == n
      when 0
        raise ArgumentError.new("must be non-zero integer")
      when 1
        nth_day_of_month(d) == n
      end
    end
def nth_day_of_month? d, n
      case n <=> 0
      when -1
        nth_last_day_of_month(d) == n
      when 0
        raise ArgumentError.new("must be non-zero integer")
      when 1
        nth_day_of_month(d) == n
      end
    end
return true if this is the nth of this day within the month,
 for example, if n is 2, and this is the second wednesday of the month,
 return true. If n is -1, and this is the last saturday of the month,
 return true. It doesn't matter which *day* it is, it matters whether
 it's the first, second, third, etc, or if it's the last, second last,
 third last, etc