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

在Java中实现一个简单的日程管理小程序,可以通过面向对象的方式设计类来表示事件和管理日程。重点是合理使用集合类存储数据,并提供增删改查功能。下面是一个实用且结构清晰的实现思路。
每个日程事件包含基本信息,如标题、时间、描述等。
LocalDateTime表示具体时间,便于比较和格式化toString()方法方便输出示例代码:
<font face="Courier New" size="2" color="#000080">
public class Event {
private String title;
private LocalDateTime dateTime;
private String description;
<pre class='brush:java;toolbar:false;'>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; }
@Override
public String toString() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
return "[" + dateTime.format(formatter) + "] " + title + " - " + description;
}}
负责管理所有事件,提供基本操作接口。
立即学习“Java免费学习笔记(深入)”;
如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld
0
ArrayList<Event>或TreeSet存储事件TreeSet并自定义比较器关键方法示例:
<font face="Courier New" size="2" color="#000080">
public class ScheduleManager {
private List<Event> events = new ArrayList<>();
<pre class='brush:java;toolbar:false;'>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<Event> 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);
}
}}
通过控制台输入实现用户交互,模拟简单界面。
Scanner读取用户输入示例片段:
<font face="Courier New" size="2" color="#000080">
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");
<pre class='brush:java;toolbar:false;'>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中如何实现日程管理小程序的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号