写代码被大语言模型坑之使用LocalDateTime比较两个时间差了几天 ...

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

自从去年ChatGPT3.5发布后使用了几次,如今写代码基本上离不开它和它的衍生产品们了。一方面查资料很方便,快速提炼要点总结;另一方面想写什么样的代码一问就能天生出来,功能大差不差,稍微改改就能用,大大淘汰使用搜索引擎的时间,是新期间高阶版的Ctrl+C/V。
不过大语言模型归根揭底是靠训练集训练出来的,它给出的代码还是要自己测试一下用起来才放心,比如这次就被它坑了一把。
注:因种种原因,本文仅测试了一些国内的大语言模型,没有测试ChatGPT。
原始需求

某列表查询功能,入参包含一组起止日期,需要校验起止日期跨度小于等于200天。
前端传参现状

将用户选择的起止日期(yyyy-MM-dd)转换成"yyyy-MM-dd HH:mm:ss"格式的字符串,且起始时间是"yyyy-MM-dd 00:00:00",停止时间是"yyyy-MM-dd 23:59:59"。
比如,页面上选择从2024-09-01到2024-09-30,实际的入参是"2024-09-01 00:00:00"和"2024-09-30 23:59:59"。而且对于这组参数,时间跨度是30天,也就是说包括首尾的当天。
需求简化

为了便于测试,我先把时间跨度的要求改为2天,比如"2024-09-01 00:00:00"到"2024-09-02 23:59:59"的时间跨度正好是2天。需求可以简化为:
String sendDateBegin="2024-09-01 00:00:00"
String sendDateEnd="2024-09-02 23:59:59"
Java代码判断两个天数是否小于等于2天
kimi给的效果:

代码提取出来:
[code]    public static void main(String[] args) {        String sendDateBegin = "2024-09-01 00:00:00";        String sendDateEnd = "2024-09-04 23:59:59";        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");        LocalDateTime beginDate = LocalDateTime.parse(sendDateBegin, formatter);        LocalDateTime endDate = LocalDateTime.parse(sendDateEnd, formatter);        // 盘算时间差        Duration duration = Duration.between(beginDate, endDate);        // 获取天数差        long daysBetween = duration.toDays();        // 判断天数是否小于等于2        if (daysBetween

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表