【特定日期格式转换】日期格式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

相关文章

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件