public function getPrecipitation()
    {
        $now = time();
        $params = array();
        foreach(func_get_args() as $arg) {
            $lat  = $arg['lat'];
            $long = $arg['long'];
            $time = (isset($arg['time'])) ? $arg['time'] : $now;

            $dt = new \DateTime();
            $dt->setTimestamp($time);

            // The DarkSky API requires the time be between -8hrs and +1hrs from now
            $min = new \DateTime("-8 hours");
            $max = new \DateTime("+1 hours");

            if ($dt < $min || $dt > $max) {
                throw new \InvalidArgumentException('Time value must greater than -8hrs and less the +1hr from now.');
            }

            // The DarkSky API expects this timestamp to be in GMT.
            $dt->setTimezone(new DateTimeZone('GMT'));

            $params[] = implode(',', array($lat, $long, $dt->getTimestamp()));
        }

        $endpoint = sprintf('/precipitation/%s/%s', $this->apiKey, implode(';', $params));
        return $this->makeAPIRequest($endpoint);
    }