import time

class Timer:
    def __init__(self):
        self.start_time = None
        self.end_time = None
    
    def start(self):
        """开始计时"""
        self.start_time = time.ticks_ms()
        return self
    
    def stop(self):
        """停止计时"""
        self.end_time = time.ticks_ms()
        return self
    
    def reset(self):
        """重置计时器"""
        self.start_time = None
        self.end_time = None
        return self
    
    def elapsed_ms(self):
        """返回经过的毫秒数"""
        if self.start_time is None:
            return 0
        end = self.end_time if self.end_time is not None else time.ticks_ms()
        return time.ticks_diff(end, self.start_time)
    
    def elapsed(self):
        """返回经过的秒数"""
        return self.elapsed_ms() / 1000.0

    def __enter__(self):
        """支持with语句的上下文管理器"""
        return self.start()

    def __exit__(self, exc_type, exc_val, exc_tb):
        """支持with语句的上下文管理器"""
        self.stop()
        return False  # 不处理异常