@param integer $month
@param integer $year

@return \StGeorgeIPG\Request
968808
public function setCardExpiryDate($month, $year)
	{
		$this->validateInputIsInteger(Request::ATTRIBUTE_CARD_EXPIRY_DATE, $month);
		$this->validateInputIsInteger(Request::ATTRIBUTE_CARD_EXPIRY_DATE, $year);
		$this->validateInputIsCardExpiryDate($month, $year);

		$cardExpiryDate = Request::formatDate($month, $year);

		$this->cardExpiryDate = $cardExpiryDate;

		return $this;
	}
839634
public function add_month($months)
    {
        $this->time = strtotime("+$months months", $this->time);
        $this->set_timestamp($this->time);
        
        return $this;
    }
1194834
protected static function checkDate($day, $month, $year)
    {
        // Tolerate both day-month and month-day order
        if ((12 <= $month && $month <= 31) && $day <= 12) {
            $m = $month;
            $month = $day;
            $day = $m;
        }
        if ($day > 31 || $month > 12) {
            return false;
        }
        if (!(1900 <= $year && $year <= 2019)) {
            return false;
        }

        return [$day, $month, $year];
    }
248340
public function yearlyAt(int $month, $task): ScheduleEvent
    {
        return $this->cron(sprintf('0 0 1 %d *', $month), $task);
    }
184560
public function withMonth(int $month) : YearMonth
    {
        if ($month === $this->month) {
            return $this;
        }

        Field\MonthOfYear::check($month);

        return new YearMonth($this->year, $month);
    }
1324314
private function validateDate(int $year, int $month, int $day): bool
    {
        if (!$this->validateMonth($month)) {
            return false;
        }
        if (!$this->validateDay($day)) {
            return false;
        }
        if (!\checkdate($month, $day, $year)) {
            return false;
        }
        return true;
    }
377470
public static function ageByYear($year, $month = null) {
		if ($month === null) {
			$maxAge = static::age(mktime(0, 0, 0, 1, 1, $year));
			$minAge = static::age(mktime(23, 59, 59, 12, 31, $year));
			$ages = array_unique([$minAge, $maxAge]);
			return implode('/', $ages);
		}
		if (date('n') == $month) {
			$maxAge = static::age(mktime(0, 0, 0, $month, 1, $year));
			$minAge = static::age(mktime(23, 59, 59, $month, static::daysInMonth($year, $month), $year));

			$ages = array_unique([$minAge, $maxAge]);
			return implode('/', $ages);
		}
		return static::age(mktime(0, 0, 0, $month, 1, $year));
	}
255146
public function setDate($year, $month, $day) {
		$this->set("$year/$month/$day ".$this->format('HH:mm:ss'), null, 'yyyy/MM/dd HH:mm:ss');
		return $this;
	}
912647
public function withDateAt(int $year = null, int $month = null, int $day = null) : self
    {
        if (null === $year && null === $month && null === $day) {
            return $this;
        }
        
        $year  = $year === null ? $this->year() : $year;
        $month = $month ?: $this->month();
        $day   = $day   ?: $this->day();
        
        $instance = clone $this;
        
        $instance->date->setDate($year, $month, $day);
        
        return $instance;
    }
306921
public function monthly($year, $month, $page = 1, $limit = 25)
    {
        return $this->client->call("expenses/in_month/{$year}/{$month}", [
            'page' => $page,
            'per_page' => $limit
        ], 'GET');
    }
271147
public function monthLengthDays(int $month, int $year = null) : int
    {
        switch ($month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                return 31;
            case 4:
            case 6:
            case 9:
            case 11:
                return 30;
            case 2:
                return !date('L', $year === null ? $this->getTimestamp() : mktime(1, 1, 1, 2, 1, $year)) ? 28 : 29;
        }
        throw new \InvalidArgumentException('Arg month[' . $month . '] is not 1 through 12.');
    }
1347182
public function getMonths($year)
    {
        $year = $this->yearOrYearNo($year);

        $months = array();

        for ($monthNo = 1; $monthNo <= 12; $monthNo++) {
            $months[$monthNo] = new Month($year, $monthNo);
        }

        return $months;
    }
764915
public function scopeByYearMonth($query, $year, $month)
	{
		return $query->where(\DB::raw('DATE_FORMAT(published_date, "%Y%m")'), '=', $year.$month);
	}
611835
public function setExpiryDateFromYearAndMonth($year, $month)
    {
        if (!in_array((string) $month, array(
            '01', '02', '03', '04',
            '05', '06', '07', '08',
            '09', '10', '11', '12',
        ))) {
            throw new \InvalidArgumentException('Invalid month '.$month);
        }

        $day = date('t', strtotime($year.'-'.$month.'-01'));

        $this->setExpiryDate(new \DateTime($year.'-'.$month.'-'.$day));

        return $this;
    }
828991
public function setDate($year, $month, $day) {
        
        $this->setYear((int) $year);
        $this->setMonth((int) $month);
        $this->setDay((int) $day);
        
        $this->updateGeorgianFromJalali();
        
        return $this;
    }
927718
public function showMonth($year, $month)
    {
        if (null !== $this->partial) {
            $partial = $this->view->plugin('partial');

            $params = array(
                'calendar' => $this->calendar,
                'startDay' => $this->startDay,
                'year'     => $year,
                'month'    => $month,
            );

            return $partial($this->partial, $params);
        }

        $renderer = $this->getRenderer();

        $renderer->setCalendar($this->calendar);
        $renderer->setStartDay($this->startDay);

        return $renderer->renderMonth($year, $month);
    }
22479
public function getMonth($year, $monthNo)
    {
        $year = $this->yearOrYearNo($year);

        return new Month($year, $monthNo);
    }