【特定日期格式转换】日期格式2024.1.1,1.2,1.3,1.4,1.5怎么转换为格式2024.1.1~1.5 星期一、星期二、星期三、星期四、星期五

本文主要是介绍【特定日期格式转换】日期格式2024.1.1,1.2,1.3,1.4,1.5怎么转换为格式2024.1.1~1.5 星期一、星期二、星期三、星期四、星期五,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、问题:

将日期格式2024.1.1,1.2,1.3,1.4,1.5怎么转换为格式2024.1.1~1.5 星期一、星期二、星期三、星期四、星期五

二、方案:

1、首先,将日期数字转换为星期几的名称。这可以通过使用Zeller公式直接查找日历来完成。对于2024年1月的日历,1月1日是星期二,因此我们可以推断出:

1月1日(2024.1.1)是星期二

1月2日(2024.1.2)是星期三

1月3日(2024.1.3)是星期四

1月4日(2024.1.4)是星期五

1月5日(2024.1.5)是星期六

2、接着,将日期范围表示为起始日期和结束日期,并用波浪号(~)连接。

3、最后,将转换后的星期几名称附加在日期范围后面

三、蔡勒公式

蔡勒公式(Zeller's congruence)是一个根据日期计算星期的算法,具体步骤如下:

  1. 确定年份:应考虑年份是否为闰年,以及日期是否在闰年中。
  2. 确定月份:对于1月和2月,应将其视为上一年的13月和14月来进行计算。
  3. 应用公式:蔡勒公式的基本形式是 

    h = (q + [(13(m+1))/5] + K + [K/4] + [J/4] + 5*J) mod 7

    其中:

  4. h:表示星期几(0=星期六,1=星期日,2=星期一,...,6=星期五)
  5. q:表示日期中的日
  6. m:表示月份(3=3月,4=4月,...,14=2月,15=1月)
  7. K:表示世纪内的年份(即年份的后两位数)
  8. J:表示世纪(即年份的前两位数)
  9. 计算结果:将得到的w值对7取余数,得到的结果即为星期几。

此外,如果计算的日期是在1582年10月4日或之前,需要使用修正的蔡勒公式,因为这是格里高利历法开始使用的日期。

总的来说,蔡勒公式是一种利用世纪、年份、月份和日期的信息,通过一系列的计算得出日期对应的星期数的方法。它基于公历的置闰规则来考虑,并且原点是公元元年12月31日。

蔡勒公式java示例代码

public class ZellerFormula {public static void main(String[] args) {int day = 1;int month = 1;int year = 2022;System.out.println("The day of the week is: " + getDayOfWeek(day, month, year));}public static String getDayOfWeek(int day, int month, int year) {if (month < 3) {month += 12;year -= 1;}int K = year % 100;int J = year / 100;int h = (day + 13 * (month + 1) / 5 + K + K / 4 + J / 4 + 5 * J) % 7;String[] daysOfWeek = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};return daysOfWeek[h];}
}

四、Java实现

可以使用Java的SimpleDateFormat类和Calendar类来将日期字符串转换为星期几,然后拼接成所需的格式

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class Main {public static void main(String[] args) {String[] dateStrs = {"2024.1.1", "1.2", "1.3", "1.4", "1.5"}; // 输入的日期字符串数组SimpleDateFormat sdf = new SimpleDateFormat("yyyy.M.d");StringBuilder result = new StringBuilder();for (String dateStr : dateStrs) {try {Date date = sdf.parse(dateStr);Calendar calendar = Calendar.getInstance();calendar.setTime(date);int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};result.append(weekDays[dayOfWeek - 1]).append("、");} catch (Exception e) {e.printStackTrace();}}result.deleteCharAt(result.length() - 1); // 删除最后一个逗号System.out.println("输入的日期是:" + dateStrs[0] + "~" + dateStrs[dateStrs.length - 1] + ",对应的星期是:" + result.toString());}
}

这篇关于【特定日期格式转换】日期格式2024.1.1,1.2,1.3,1.4,1.5怎么转换为格式2024.1.1~1.5 星期一、星期二、星期三、星期四、星期五的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896136

相关文章

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

Mysql表如何按照日期字段的年月分区

《Mysql表如何按照日期字段的年月分区》:本文主要介绍Mysql表如何按照日期字段的年月分区的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、创键表时直接设置分区二、已有表分区1、分区的前置条件2、分区操作三、验证四、注意总结一、创键表时直接设置分区

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图