<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def process_resource_schedule(self, i, value, time_type):
 """Does the resource tag schedule and policy match the current time."""

        rid = i[self.id_key]
        # this is to normalize trailing semicolons which when done allows
        # dateutil.parser.parse to process: value='off=(m-f,1);' properly.
        # before this normalization, some cases would silently fail.
        value = ';'.join(filter(None, value.split(';')))
        if self.parser.has_resource_schedule(value, time_type):
            schedule = self.parser.parse(value)
        elif self.parser.keys_are_valid(value):
            # respect timezone from tag
            raw_data = self.parser.raw_data(value)
            if 'tz' in raw_data:
                schedule = dict(self.default_schedule)
                schedule['tz'] = raw_data['tz']
            else:
                schedule = self.default_schedule
        else:
            schedule = None
        if schedule is None:
            log.warning(
                "Invalid schedule on resource:%s value:%s", rid, value)
            self.parse_errors.append((rid, value))
            return False
        tz = self.get_tz(schedule['tz'])
        if not tz:
            log.warning(
                "Could not resolve tz on resource:%s value:%s", rid, value)
            self.parse_errors.append((rid, value))
            return False
        now = datetime.datetime.now(tz).replace(
            minute=0, second=0, microsecond=0)
        now_str = now.strftime("%Y-%m-%d")
        if 'skip-days-from' in self.data:
            values = ValuesFrom(self.data['skip-days-from'], self.manager)
            self.skip_days = values.get_values()
        else:
            self.skip_days = self.data.get('skip-days', [])
        if now_str in self.skip_days:
            return False
        return self.match(now, schedule)