在Java中如何实现日程管理小程序

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

在java中如何实现日程管理小程序

在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人工智能在线问答入口”;

ArrayListTreeSet存储事件若按时间排序,推荐使用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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月24日 03:00:12
下一篇 2025年11月24日 03:14:29

相关推荐

  • 洋葱浏览器下载文件安全吗_使用洋葱浏览器安全下载文件的注意事项

    首先验证.onion链接真实性,通过可信渠道获取并核对PGP签名;其次在虚拟机或沙盒中下载,关闭共享功能并校验文件哈希;接着使用多引擎扫描工具检测恶意代码,分析行为日志;最后严格管理浏览器权限,禁用JavaScript和第三方插件,定期清除痕迹。 如果您尝试通过洋葱浏览器下载文件,但对来源和操作方式…

    2025年12月6日 软件教程
    000
  • ai生成视频入口

    ai生成视频入口: 即梦ai:jimeng.jianying.com DeepSeek:chat.deepseek.com 访问这些工具的官方网站后,通常在首页显眼位置会看到“AI 生成视频”或“一键生成视频”等按钮。点击进入后,根据页面指引输入视频主题、脚本内容以及风格偏好等信息,即可利用 AI …

    2025年12月6日 软件教程
    000
  • 世界级跨海集群工程,深中通道西人工岛今日启动文旅试运营

    10 月 25 日消息,根据“深中通道发布”官方公众号发布的消息,深中通道西人工岛将于 10 月 25 日起开启文旅试运营,并计划于 12 月正式对公众开放。 据官方介绍,深中通道是集桥梁、人工岛、隧道和水下互通于一体的超级跨海工程,全长约 24 公里,创造了十项世界纪录,堪称当前全球综合建设难度最…

    2025年12月6日 行业动态
    000
  • 谁最容易被 AI 替代?清华大学教授:初级白领最危险

    清华大学心理与认知科学系主任刘嘉教授近期与腾讯科技展开对话,围绕人类价值的重新评估、不可替代的核心能力以及与人工智能共生的新模式进行了深入交流。在谈及经典的“ai 替代”话题时,刘嘉指出,大模型本质上是“知识的聚合体”,因此白领群体,尤其是从事知识密集型工作的人群,将是最先受到冲击的一批人。 刘嘉预…

    2025年12月6日 硬件教程
    000
  • AMD首款CPU 50年了逆向工程克隆Intel 8080:成本50美分卖700美元

    10月26日消息,相比于intel成立之初的传奇,amd的起家似乎有点不太高尚,但也是特定历史背景下的特殊经历,不可能再被复制。 整整50年前,AMD的第一款CPU处理器诞生了,它就是AM9080。 它的争议之处在于并非原生自主设计,而是通过对Intel 8080处理器进行逆向工程研究,克隆而来。 …

    2025年12月6日 行业动态
    000
  • Linux文件系统smartctl命令使用教程

    smartctl是Linux下监控硬盘健康的核心工具,通过读取S.M.A.R.T.信息实现故障预警。1. 安装:Ubuntu/Debian用sudo apt install smartmontools,CentOS/RHEL/Fedora用sudo yum install smartmontools…

    2025年12月6日 运维
    000
  • 实测 Gemini 图片转视频新功能,终于蹲到经典梗图后续了(doge)

    gemini 也接入图片转视频功能了!还是带声音那种! 官方给出来的示例是开盒子出现各种东西,音效还挺丰富的。 不得不说我看到最后那个真的没忍住笑…… 看起来挺有意思,不过我有点想问: 立即进入“豆包AI人工智官网入口”; 立即学习“豆包AI人工智能在线问答入口”; 盒子里装什么都可以吗? 不是盒子…

    2025年12月6日 硬件教程
    000
  • Linux如何进行日志切割_Linux日志切割的实用配置方法

    logrotate是Linux日志管理核心%ignore_a_1%,通过配置文件定义轮转规则,支持按时间或大小切割日志,自动执行压缩、归档与删除,结合cron定期运行,确保日志高效管理且不占用过多磁盘空间。 Linux系统中日志文件会随着时间不断增长,过大的日志不仅占用磁盘空间,还会影响排查问题的效…

    2025年12月6日 运维
    000
  • CPU怎么检测指令集支持 CPU-Z指令集验证指南

    要查看cpu支持的指令集,可使用cpu-z工具,在“instructions”栏中查看。步骤为:下载安装cpu-z,运行后切换到cpu选项卡,查看“instructions”栏列出的指令集,如sse、avx、avx2等。若显示异常,可能原因包括cpu-z版本过低、bios设置问题、cpu识别错误、或…

    2025年12月6日 硬件教程
    000
  • NVIDIA未来将达10万亿美元市值:GPU血赚 利润将达3750亿美元

    10月26日最新消息,苹果曾作为全球首家市值突破1万亿美元和2万亿美元的科技巨头,引领了上一个时代的辉煌。然而近两三年势头最猛的无疑是NVIDIA,依靠在AI GPU市场的绝对主导地位,其市值接连跨越3万亿、4万亿美元大关。 如今,NVIDIA市值已达4.5万亿美元,业内普遍预期它将成为全球首个冲击…

    2025年12月6日 行业动态
    000
  • Intel还拿什么跟啊:AMD升级版9850X3D、9950X3D2明年齐发!

    AMD计划在CES 2026上推出全新的锐龙9000系列处理器,产品线涵盖升级版X3D游戏芯片与基于Zen5架构的桌面APU。据可靠消息,此次发布将包括两款新一代X3D型号:锐龙7 9850X3D与旗舰级锐龙9 9950X3D2。 备受瞩目的锐龙9 9950X3D2将开创性地采用双CCD均搭载3D …

    2025年12月6日 行业动态
    000
  • JavaScript Promise并发控制策略

    答案:通过并发控制限制同时执行的异步任务数,可避免资源耗尽。使用Promise队列或async/await实现任务调度,如手动创建任务池或利用p-limit等库控制最大并发,结合Promise.allSettled统一处理结果与错误,平衡性能与稳定性。 在处理大量异步任务时,直接发起全部请求可能导致…

    2025年12月6日 web前端
    000
  • 如何在mysql中设置最大并发连接

    答案是通过调整max_connections参数设置MySQL最大并发连接数。默认151,可临时用SET GLOBAL命令修改,或在配置文件[mysqld]段落添加max_connections持久生效,修改后需重启服务,并注意内存消耗与系统连接限制。 在 MySQL 中设置最大并发连接数,主要是通…

    2025年12月6日 数据库
    000
  • Gravity Forms:解决隐藏必填字段导致的提交问题

    本文旨在解决在使用 Gravity Forms 时,通过 JavaScript 隐藏必填字段可能导致的表单提交问题。核心在于理解 JavaScript 隐藏字段并不改变其必填属性,因此需要通过 PHP 代码进行自定义验证,以确保表单在特定条件下能够成功提交。本文将提供两种基于 PHP 的解决方案:一…

    2025年12月6日 web前端
    000
  • 华为第一款!Mate 70 Air本月发布:不到7mm、无eSIM

    10月25日消息,在苹果发布iphone air之后,华为的第一款air也来了。 据博主定焦数码爆料,华为Mate 70 Air将在本月登场,机身厚度只有6.x mm,主打超轻薄。 与苹果不同的是,Mate 70 Air支持实体SIM卡,没有eSIM配置,对目前国内市场更方便友好。 正面配备一块7英…

    2025年12月6日 手机教程
    000
  • 英特尔NUC 13 Extreme猛禽峡谷 紧凑型主机散热测试

    nuc 13 extreme在长时间高负载下散热表现优秀但噪音明显。1. 在极限负载下,cpu温度可达100°c并触发降频,风扇高速运转确保稳定;2. gpu满载温度稳定在75-85°c,散热表现良好;3. 双烤测试中cpu维持90-95°c,gpu稳定在80-85°c;4. 风扇噪音明显但系统稳定…

    2025年12月6日 硬件教程
    000
  • 掌握JavaScript动态创建元素事件监听的正确姿势

    本文深入探讨了javascript中为动态创建的dom元素添加事件监听器的常见问题及解决方案。通过一个菜单开关的实例,文章详细解释了为何在元素创建前尝试绑定事件会失败,并提供了在元素被添加到dom后立即绑定事件的正确方法,确保动态交互功能正常运作。 引言:动态DOM与事件监听的挑战 在现代Web开发…

    2025年12月6日 web前端
    000
  • laravel如何记录和处理应用程序日志_Laravel应用日志记录与处理方法

    Laravel日志系统基于Monolog,支持single、daily等多种通道,可通过config/logging.php配置,使用Log门面按级别记录信息,并集成异常处理与第三方服务,便于问题定位与系统监控。 Laravel 内置了强大且灵活的日志系统,基于 Monolog 库构建,可以轻松记录…

    2025年12月6日 PHP框架
    000
  • 如何在Linux中查找大文件?

    使用find命令结合-size选项可查找大文件,如find /path -type f -size +100M;通过du -h与sort -h排序并用tail筛选最大文件,推荐从具体目录搜索以提升效率。 在Linux中查找大文件,主要通过命令行工具结合文件大小筛选来实现。最常用的方法是使用 find…

    2025年12月6日 运维
    000
  • 索尼 PS6 主机、掌机规格曝光,最快 2027 年发布

    此前有传闻称,索尼下一代主机ps6将包含主机与掌机两种配套设备,预计在2027年或2028年正式亮相。 最近,相关消息源再度披露了关于PS6主机及掌机的初步硬件配置信息。 据透露,索尼PS6的研发代号为“Orion”,将采用半定制的AMD APU方案,集成Zen 6架构的CPU与RDNA 5架构的G…

    2025年12月6日 硬件教程
    000

发表回复

登录后才能评论
关注微信