首先定义Event类封装事件信息,包含标题、时间、描述及toString方法;再通过ScheduleManager类使用List存储并排序事件,提供增删查功能;最后在main方法中用Scanner实现菜单交互,完成日程管理基本操作。

在Java中实现一个简单的日程管理小程序,可以通过面向对象的方式设计类来表示事件和管理日程。重点是合理使用集合类存储数据,并提供增删改查功能。下面是一个实用且结构清晰的实现思路。
定义事件类(Event)
每个日程事件包含基本信息,如标题、时间、描述等。
使用LocalDateTime表示具体时间,便于比较和格式化重写toString()方法方便输出提供构造函数和getter/setter方法
示例代码:
public class Event { private String title; private LocalDateTime dateTime; private String description;public Event(String title, LocalDateTime dateTime, String description) { this.title = title; this.dateTime = dateTime; this.description = description;}// getter 和 setter 方法public String getTitle() { return title; }public LocalDateTime getDateTime() { return dateTime; }public String getDescription() { return description; }@Overridepublic String toString() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); return "[" + dateTime.format(formatter) + "] " + title + " - " + description;}
}
日程管理类(ScheduleManager)
负责管理所有事件,提供基本操作接口。
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
用ArrayList或TreeSet存储事件若按时间排序,推荐使用TreeSet并自定义比较器实现添加、删除、查询、显示全部等功能
关键方法示例:
public class ScheduleManager { private List events = new ArrayList();public void addEvent(Event event) { events.add(event); events.sort((e1, e2) -> e1.getDateTime().compareTo(e2.getDateTime())); // 按时间排序}public boolean removeEvent(String title) { return events.removeIf(event -> event.getTitle().equals(title));}public List findEventsByDate(LocalDate date) { return events.stream() .filter(e -> e.getDateTime().toLocalDate().equals(date)) .collect(Collectors.toList());}public void displayAll() { if (events.isEmpty()) { System.out.println("暂无日程安排。"); } else { events.forEach(System.out::println); }}
}
主程序交互(Main)
通过控制台输入实现用户交互,模拟简单界面。
使用Scanner读取用户输入循环显示菜单选项解析命令调用对应方法
示例片段:
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ScheduleManager manager = new ScheduleManager(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");while (true) { System.out.println("n--- 日程管理 ---"); System.out.println("1. 添加日程 2. 查看所有 3. 按日期查看 4. 删除日程 5. 退出"); System.out.print("请选择: "); int choice = scanner.nextInt(); scanner.nextLine(); // 清除换行 switch (choice) { case 1: System.out.print("标题: "); String title = scanner.nextLine(); System.out.print("时间 (yyyy-MM-dd HH:mm): "); LocalDateTime time = LocalDateTime.parse(scanner.nextLine(), formatter); System.out.print("描述: "); String desc = scanner.nextLine(); manager.addEvent(new Event(title, time, desc)); System.out.println("已添加!"); break; case 2: manager.displayAll(); break; case 3: System.out.print("输入日期 (yyyy-MM-dd): "); LocalDate date = LocalDate.parse(scanner.nextLine()); manager.findEventsByDate(date).forEach(System.out::println); break; case 4: System.out.print("输入要删除的标题: "); String delTitle = scanner.nextLine(); if (manager.removeEvent(delTitle)) { System.out.println("删除成功!"); } else { System.out.println("未找到该日程。"); } break; case 5: System.out.println("再见!"); return; default: System.out.println("无效选择,请重试。"); }}
}
基本上就这些。这个小程序不复杂但容易忽略细节,比如时间格式处理、输入异常、空值判断等。后续可以扩展文件保存、提醒功能或图形界面。
以上就是在Java中如何实现日程管理小程序的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/6315.html
微信扫一扫
支付宝扫一扫