当前位置:

首页 > 编程开发 > Java图书借阅逾期提醒练习

Java图书借阅逾期提醒练习

图书借阅逾期提醒功能通过日期差计算和条件判断实现:未逾期提示“按时归还”,逾期1-7天提示“尽快归还”,超7天提示“需缴纳罚款”;推荐使用LocalDate和ChronoUnit.DAYS.between()精确计算天数差,避免Date类的时区与可变性问题;关键在于正确处理边界情况和if-else分支顺序。

本文目录

    图书借阅逾期提醒功能通过日期差计算和条件判断实现:未逾期提示“按时归还”,逾期1-7天提示“尽快归还”,超7天提示“需缴纳罚款”;推荐使用LocalDate和ChronoUnit.DAYS.between()精确计算天数差,避免Date类的时区与可变性问题;关键在于正确处理边界情况和if-else分支顺序。

    Java编写图书借阅逾期提醒_条件分支与时间判断练习

    在Java编程中,图书借阅逾期提醒功能是一个典型的时间判断与条件分支结合的应用场景。通过这个练习,可以掌握如何使用日期处理和if-else结构来实现业务逻辑。

    需求说明

    图书馆规定每本书的借阅期限为14天。系统需要根据当前日期与归还日期的差值判断是否逾期,并输出相应提示:

    • 未逾期:显示“图书未逾期,按时归还!”
    • 逾期1-7天:显示“已逾期,请尽快归还!”
    • 逾期超过7天:显示“严重逾期,需缴纳罚款!”

    使用Date类进行时间判断

    Java中可以通过java.util.Date获取当前时间,并与设定的归还日期比较。关键在于计算两个日期之间的天数差。

    示例代码:

    import java.util.Date;
    import java.text.SimpleDateFormat;
    

    public class BookReturnReminder { public static void main(String[] args) { // 模拟借书日期(例如:两周前) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); long borrowTime = System.currentTimeMillis() - (14 24 60 60 1000L); // 14天前 Date returnDeadline = new Date(borrowTime + 14 24 60 60 1000L); // 到期日

        Date today = new Date();
        long diffInMillis = today.getTime() - returnDeadline.getTime();
        int overdueDays = (int)(diffInMillis / (24 * 60 * 60 * 1000));
    
        if (overdueDays < 0) {
            System.out.println("图书未逾期,按时归还!");
        } else if (overdueDays >= 1 && overdueDays <= 7) {
            System.out.println("已逾期,请尽快归还!");
        } else if (overdueDays > 7) {
            System.out.println("严重逾期,需缴纳罚款!");
        } else {
            System.out.println("今日到期,建议立即归还。");
        }
    }

    }

    改用LocalDate更简洁安全

    从Java 8开始推荐使用java.time.LocalDate,避免Date类的可变性和时区问题。

    更新后的代码示例:

    import java.time.LocalDate;
    import java.time.temporal.ChronoUnit;
    

    public class BookReturnReminderModern { public static void main(String[] args) { LocalDate borrowDate = LocalDate.of(2025, 3, 1); LocalDate dueDate = borrowDate.plusDays(14); // 14天后到期 LocalDate today = LocalDate.now();

        long overdueDays = ChronoUnit.DAYS.between(dueDate, today);
    
        if (overdueDays < 0) {
            System.out.println("图书未逾期,按时归还!");
        } else if (overdueDays <= 7) {
            System.out.println("已逾期,请尽快归还!");
        } else {
            System.out.println("严重逾期,需缴纳罚款!");
        }
    }

    }

    关键逻辑解析

    核心是准确计算逾期天数并合理划分条件分支:

    • 利用ChronoUnit.DAYS.between()获取两个日期间的整数天数
    • 注意:如果today早于dueDate,结果为负数,表示未到期
    • if-else顺序要正确,先判断最小范围,再覆盖更大范围
    • 测试时可手动设置borrowDate模拟不同情况

    基本上就这些。掌握日期差值计算和条件判断顺序,就能灵活应对类似提醒类功能开发。不复杂但容易忽略边界情况,比如刚好到期那天的处理。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    如何使用Java编写一个简单的学生图书借阅排行榜系统?
    如何使用Java编写一个简单的学生图书借阅排行榜系统?

    如何使用Java编写一个简单的学生图书借阅排行榜系统?随着科技的发展,图书借阅管理系统在学校和图书馆变得越来越普遍。本文将介绍如何使用Java编写一个简单的学生图书借阅排行榜系统。首先,我们需要定义一个学生类(Student),包括学生的基本信息和借阅的图书信息。学生的基本信息包括学号(id)、姓名(name)以及年级(grade)。借阅的图书信息包括图书名

    如何使用PHP实现微信小程序的图书借阅功能?
    如何使用PHP实现微信小程序的图书借阅功能?

    如何使用PHP实现微信小程序的图书借阅功能?随着微信小程序的发展,越来越多的图书馆开始使用微信小程序来提供图书借阅服务。而PHP作为一种流行的服务器端编程语言,可以很好地支持这样的图书借阅功能的实现。在本文中,我们将介绍如何使用PHP来实现微信小程序的图书借阅功能,并提供一些具体的代码示例。注册小程序平台账号和配置开发者工具首先,我们需要在微信小程序平台注册

    opencode安装skills教程及本地配置方法
    opencode安装skills教程及本地配置方法

    遇到OpenCode Skills无法加载或配置无效?本文手把手教你完成Skills的安装、环境变量设置及本地调试,避开常见坑点,让AI助手更懂你的代码习惯。

    如何开启Visual Studio2022实时代码分析警告提示
    如何开启Visual Studio2022实时代码分析警告提示

    解决 Visual Studio 2022 编辑时不显示代码分析警告的问题。指南涵盖 .NET 项目实时分析设置、Roslyn 分析器范围调整及错误列表来源筛选,确保开发者能高效利用实时代码诊断功能。

    如何在Visual Studio2022查看变量监视窗口调试程序
    如何在Visual Studio2022查看变量监视窗口调试程序

    详解 Visual Studio 2022 调试技巧:包括断点设置、监视窗口开启方法、变量添加步骤以及通过 F10 单步执行观察变量值变化的全过程。

    Visual Studio2017设置默认编码为UTF-8不带BOM
    Visual Studio2017设置默认编码为UTF-8不带BOM

    针对 Visual Studio 2017 缺乏全局默认编码选项的情况,详解如何利用 .editorconfig 设定项目级 UTF-8 无 BOM 规则,以及手动转换现有文件并校验字节的方法。

    Visual Studio2022F5调试提示启动项目未配置怎么修复
    Visual Studio2022F5调试提示启动项目未配置怎么修复

    解决 Visual Studio 2022 F5 调试报错问题,通过设置启动项目、检查解决方案属性及正确区分类库与应用项目,快速恢复调试功能。

    Visual Studio2022NuGet包还原失败离线处理方案
    Visual Studio2022NuGet包还原失败离线处理方案

    解决Visual Studio 2022离线环境中NuGet包还原失败的难题,涵盖依赖链分析、本地源配置、包集收集及隔离验证步骤,帮助开发者构建稳定的离线开发环境。

    Visual Studio2017大项目加载缓慢,优化加载性能技巧
    Visual Studio2017大项目加载缓慢,优化加载性能技巧

    解决Visual Studio 2017大型项目加载慢的实用指南。涵盖性能监测、扩展管理、文档恢复优化及版本兼容性检查,帮助开发者精准定位瓶颈并提升工作效率。

    Visual Studio2022设置多启动项目同时调试运行
    Visual Studio2022设置多启动项目同时调试运行

    详解 Visual Studio 2022 多启动项目配置方法,包括启动动作选择、顺序调整及调试技巧,帮助开发者高效调试分布式或前后端分离应用。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。