<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def suspend_zone(self, days, zone=None):
 """ Suspend or unsuspend a zone or all zones for an amount of time. :param days: Number of days to suspend the zone(s) :type days: int :param zone: The zone to suspend. If no zone is specified then suspend all zones :type zone: int or None :returns: The response from set_zones() or None if there was an error. :rtype: None or string """

        if zone is None:
            zone_cmd = 'suspendall'
            relay_id = None
        else:
            if zone < 0 or zone > (len(self.relays) - 1):
                return None
            else:
                zone_cmd = 'suspend'
                relay_id = self.relays[zone]['relay_id']

        # If days is 0 then remove suspension
        if days <= 0:
            time_cmd = 0
        else:
            # 1 day = 60 * 60 * 24 seconds = 86400
            time_cmd = time.mktime(time.localtime()) + (days * 86400)

        return set_zones(self._user_token, zone_cmd, relay_id, time_cmd)