当前位置: 首页 > news >正文

ueditor for wordpress太原百度seo排名软件

ueditor for wordpress,太原百度seo排名软件,网页设计作品集,萨wordpress下面我将介绍如何根据多个"MM-dd"格式的日期(可能跨年)来计算总时长,特别处理当日和次日的情况。解决方案方法思路将输入的"MM-dd"格式转换为完整的日期(考虑跨年情况)对日期进行排序计算相邻日期…

下面我将介绍如何根据多个"MM-dd"格式的日期(可能跨年)来计算总时长,特别处理当日和次日的情况。


解决方案

方法思路

  1. 将输入的"MM-dd"格式转换为完整的日期(考虑跨年情况)

  2. 对日期进行排序

  3. 计算相邻日期之间的时间差

  4. 累加得到总时长


运行代码

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*;public class DateDurationCalculator {// 主计算方法public static Duration calculateTotalDuration(List<String> monthDayStrings, LocalDate today) {if (monthDayStrings == null || monthDayStrings.isEmpty()) {return Duration.ZERO;}// 转换所有日期为LocalDate(处理跨年)List<LocalDate> dates = convertMonthDayToDates(monthDayStrings, today);// 对日期进行排序Collections.sort(dates);// 计算总时长Duration totalDuration = Duration.ZERO;for (int i = 0; i < dates.size() - 1; i++) {LocalDate start = dates.get(i);LocalDate end = dates.get(i + 1);// 计算两个日期之间的天数long daysBetween = ChronoUnit.DAYS.between(start, end);// 如果日期连续(当日和次日)if (daysBetween == 1) {totalDuration = totalDuration.plus(Duration.ofDays(1));} else {// 非连续日期,只计算单个日期totalDuration = totalDuration.plus(Duration.ofDays(1));}}// 加上最后一个日期return totalDuration.plus(Duration.ofDays(1));}// 将MM-dd转换为LocalDate,处理跨年情况private static List<LocalDate> convertMonthDayToDates(List<String> monthDayStrings, LocalDate today) {DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd");List<LocalDate> dates = new ArrayList<>();for (String monthDay : monthDayStrings) {MonthDay md = MonthDay.parse(monthDay, formatter);// 获取可能的年份(今年或明年)LocalDate date = md.atYear(today.getYear());if (date.isBefore(today)) {// 如果日期已经过去,则认为是明年date = md.atYear(today.getYear() + 1);}dates.add(date);}return dates;}public static void main(String[] args) {// 示例使用LocalDate today = LocalDate.now();List<String> dates = Arrays.asList("12-25", "12-26", "01-01", "01-02");Duration duration = calculateTotalDuration(dates, today);System.out.println("总天数: " + duration.toDays());System.out.println("总小时数: " + duration.toHours());}
}

关键点说明

  1. 跨年处理:

    • 使用MonthDay类解析"MM-dd"格式

    • 比较日期与当前日期,决定使用今年还是明年的年份

  2. 当日和次日判断:

    • 使用ChronoUnit.DAYS.between()计算日期差

    • 差值为1表示是连续的当日和次日

  3. 总时长计算:

    • 连续日期计算为完整时间段

    • 非连续日期单独计算

  4. 输出结果:

    • 可以获取总天数、小时数等不同单位的时长


// 测试跨年情况
List<String> testDates1 = Arrays.asList("12-30", "12-31", "01-01");
Duration result1 = calculateTotalDuration(testDates1, LocalDate.of(2023, 1, 1));
// 应返回3天(12-30, 12-31, 01-01)// 测试非连续日期
List<String> testDates2 = Arrays.asList("01-01", "01-03", "01-05");
Duration result2 = calculateTotalDuration(testDates2, LocalDate.of(2023, 1, 1));
// 应返回3天(每个日期单独计算)

http://www.dtcms.com/a/475207.html

相关文章:

  • 网站左边logo图标怎么做网站开发需求分析怎么写
  • llm模型训练防遗忘与同义词训练理解
  • 晒豆网站建设新泰网页设计
  • ssh 密钥怎么配置不同网站用不同密钥,对应不同Git仓库以及帐号
  • 网站建设网站设计哪家专业企业管理系统的构成
  • Razor VB 逻辑:深入理解与最佳实践
  • 怎样做易支付网站网页组件
  • 绥化网站建设兼职python 创建wordpress
  • 陕西交通建设集团蓝商公司网站seo咨询
  • 带偏置的三级运放仪表放大电路与仿真
  • 深度学习优化算法深入分析:从 SGD 到 LAMB
  • 建外贸营销型网站WordPress的light
  • 案例较少如何做设计公司网站视频网站开发费用
  • Shiro
  • 【2025PC端多模态大模型部署推荐】
  • [数据集][xlsx]电力变压器油色谱数据集介绍
  • 基于LoRa的果园智能灌溉无线控制系统的设计(论文+源码)
  • 网站自助服务建设策划佛山电脑培训班哪里有
  • 网站的统计代码是什么意思交互设计要学什么
  • 视频网站怎么做服务器网页代码怎么写
  • 站点可用性监测实验
  • 教育一对一直播网站建设有做火币网这种网站的吗
  • JVM字节码与类的加载(二):类加载器
  • 两轮自平衡车原理详解与代码实现
  • 手机网站开源系统wordpress 商务主题
  • 网站建设体会心得wordpress文章图片本地化
  • 长春市做网站的公司比较好的网页制作公司
  • 网站推广营销策略erp系统有哪些软件
  • 深圳网站官网建设wordpress如何建栏目
  • linux下添加zookeeper开机自动启动流程引擎camunda集群部署方案