Вопрос пользователя:
Ответ нейросети:
package main
import (
"fmt"
"time"
)
type Task struct {
title string
description string
deadline time.Time
priority int
completed bool
}
func (t Task) String() string {
completed := "Not Completed"
if t.completed {
completed = "Completed"
}
return fmt.Sprintf("Title: %s\nDescription: %s\nDeadline: %s\nPriority: %d\nStatus: %s", t.title, t.description, t.deadline.Format("2006-01-02"), t.priority, completed)
}
func NewTask(title, description string, deadline time.Time, priority int) Task {
return Task{
title: title,
description: description,
deadline: deadline,
priority: priority,
completed: false,
}
}
func (t *Task) CompleteTask() {
t.completed = true
}
type Note struct {
title string
text string
}
type ToDoList struct {
name string
tasks []Task
notes []Note
}
func (tdl ToDoList) TasksCount() int {
return len(tdl.tasks)
}
func (tdl ToDoList) NotesCount() int {
return len(tdl.notes)
}
func (tdl ToDoList) CountTopPrioritiesTasks() int {
count := 0
for _, task := range tdl.tasks {
if task.priority >= 5 {
count++
}
}
return count
}
func (tdl ToDoList) CountOverdueTasks() int {
count := 0
now := time.Now()
for _, task := range tdl.tasks {
if !task.completed && task.deadline.Before(now) {
count++
}
}
return count
}
func main() {
task1 := NewTask("Task 1", "Description for Task 1", time.Now().AddDate(0, 0, 1), 3)
task2 := NewTask("Task 2", "Description for Task 2", time.Now().AddDate(0, 0, 2), 7)
task3 := NewTask("Task 3", "Description for Task 3", time.Now().AddDate(0, 0, -1), 6)
list := ToDoList{
name: "My ToDo List",
tasks: []Task{task1, task2, task3},
notes: []Note{
{title: "Note 1", text: "Text for Note 1"},
{title: "Note 2", text: "Text for Note 2"},
},
}
fmt.Printf("Total Tasks: %d\n", list.TasksCount())
fmt.Printf("Total Notes: %d\n", list.NotesCount())
fmt.Printf("Top Priority Tasks: %d\n", list.CountTopPrioritiesTasks())
fmt.Printf("Overdue Tasks: %d\n", list.CountOverdueTasks())
}
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.