欢迎访问宙启技术站
智能推送

使用Python编写一个简单的时间管理应用

发布时间:2023-12-04 18:47:57

以下是使用Python编写的一个简单的时间管理应用的示例代码:

import datetime

class Task:
    def __init__(self, name):
        self.name = name
        self.start_time = None
        self.end_time = None

    def start(self):
        self.start_time = datetime.datetime.now()

    def end(self):
        self.end_time = datetime.datetime.now()

    def duration(self):
        if self.start_time is not None and self.end_time is not None:
            duration = self.end_time - self.start_time
            return duration.total_seconds()
        else:
            return 0

class TimeTracker:
    def __init__(self):
        self.tasks = {}

    def start_task(self, task_name):
        if task_name not in self.tasks:
            task = Task(task_name)
            task.start()
            self.tasks[task_name] = task
        else:
            print(f"Task '{task_name}' is already running.")

    def end_task(self, task_name):
        if task_name in self.tasks:
            task = self.tasks[task_name]
            task.end()
            print(f"Task '{task_name}' ended. Duration: {task.duration()} seconds.")
        else:
            print(f"Task '{task_name}' is not running.")

    def list_tasks(self):
        for task_name, task in self.tasks.items():
            duration = task.duration()
            print(f"Task: '{task_name}', Duration: {duration} seconds")

# 使用示例
tracker = TimeTracker()

tracker.start_task("Task 1")
tracker.start_task("Task 2")

tracker.end_task("Task 1")

tracker.start_task("Task 3")
tracker.end_task("Task 2")

tracker.list_tasks()

# 输出:
# Task 'Task 1' ended. Duration: 2.542316 seconds.
# Task 'Task 2' ended. Duration: 5.382632 seconds.
# Task: 'Task 1', Duration: 2.542316 seconds
# Task: 'Task 2', Duration: 5.382632 seconds
# Task: 'Task 3', Duration: 0 seconds

在上面的示例中,Task 类表示一个任务,它包含名称、开始时间和结束时间属性。TimeTracker 类管理所有任务,并提供开始任务、结束任务以及列出任务的方法。

在使用示例中,首先创建一个 TimeTracker 实例 tracker。然后使用 start_task 方法开始一些任务,使用 end_task 方法结束任务,并使用 list_tasks 方法列出所有任务及其持续时间。

注意:示例代码只提供了基本的时间管理功能,实际应用中可以根据需求进行扩展,例如添加保存任务到文件、提供更详细的统计信息等功能。