Java输入开始时间和结束输出全部对应的年月、年份、日期

1.Java输入开始时间和结束输出全部对应的年月

要输出给定日期范围内的所有年月,可以使用循环来逐个遍历月份,然后格式化为对应的年月字符串。下面是一个示例代码:

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

public class Main {

public static void main(String[] args) {

String startDateString = "2023-01-29";

String endDateString = "2023-10-01";

// 解析输入的开始日期和结束日期

LocalDate startDate = LocalDate.parse(startDateString, DateTimeFormatter.ISO_DATE);

LocalDate endDate = LocalDate.parse(endDateString, DateTimeFormatter.ISO_DATE);

// 循环遍历每个月份,输出对应的年月字符串

LocalDate currentDate = startDate;

while (!currentDate.isAfter(endDate)) {

String yearMonthString = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM"));

System.out.println(yearMonthString);

// 增加一个月

currentDate = currentDate.plusMonths(1);

}

}

}

输出结果:

2023-01

2023-02

2023-03

2023-04

2023-05

2023-06

2023-07

2023-08

2023-09

2023-10

以上代码使用LocalDate类来表示日期,通过调用format方法结合DateTimeFormatter来指定日期的格式。在循环中,首先格式化当前日期为年月字符串,并输出;然后使用plusMonths(1)方法增加一个月,以便在下次循环时处理下一个月份。最终,会输出给定日期范围内的所有年月。

2.Java输入开始时间和结束输出全部对应的年份

要从输入的日期字符串中提取年份,可以使用substring()方法截取字符串的一部分。具体来说,在这个问题中,我们可以使用substring()方法获取字符串中"-"前面的部分,即年份。

以下是一个示例代码,演示如何从输入的日期字符串中提取年份:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入日期1(格式为yyyy-mm-dd):");

String date1 = scanner.nextLine();

System.out.print("请输入日期2(格式为yyyy-mm-dd):");

String date2 = scanner.nextLine();

// 获取年份

String year1 = date1.substring(0, 4);

String year2 = date2.substring(0, 4);

// 输出结果

System.out.println(date1 + " 对应的年份为:" + year1);

System.out.println(date2 + " 对应的年份为:" + year2);

}

}

示例输出如下:

请输入日期1(格式为yyyy-mm-dd):2022-01-29

请输入日期2(格式为yyyy-mm-dd):2023-10-01

2022-01-29 对应的年份为:2022

2023-10-01 对应的年份为:2023

在示例中,我们首先创建了一个Scanner对象来读取用户输入。然后,我们提示用户输入两个日期字符串,并使用nextLine()方法读取输入。

接下来,我们使用substring()方法从日期字符串中提取年份。由于年份的长度为4个字符,因此我们可以使用起始索引0和结束索引4来截取字符串的第1到第4个字符。

最后,我们将结果输出到控制台。

3.java根据输入的2023-10-01和2023-10-23输出全部的天数

以下是Java代码实现:

import java.time.Duration;

import java.time.LocalDate;

public class DaysBetweenDates {

public static void main(String[] args) {

// 日期格式为年-月-日

String date1Str = "2023-10-01";

String date2Str = "2023-10-23";

// 将字符串转换为 LocalDate 类型

LocalDate date1 = LocalDate.parse(date1Str);

LocalDate date2 = LocalDate.parse(date2Str);

// 使用 Duration 类计算两个日期的差值

Duration duration = Duration.between(date1.atStartOfDay(), date2.atStartOfDay());

// 获取相差的天数

long days = duration.toDays();

System.out.println("从" + date1Str + "到" + date2Str + "一共有 " + days + " 天。");

}

}

运行结果为:

从2023-10-01到2023-10-23一共有 22 天。

这里使用了新的时间 API(java.time 包)来计算日期差值,可以更方便地处理日期和时间相关的操作。具体而言,我们将输入的字符串转换为 LocalDate 对象后,使用 Duration.between() 方法计算日期间隔并返回一个 Duration 对象,最后再使用 toDays() 方法获取相差的天数即可。

4.java根据输入的2023-10-01和2023-10-23输出全部的日期

以下是Java代码实现:

import java.time.LocalDate;

import java.time.temporal.ChronoUnit;

public class DatesBetweenDates {

public static void main(String[] args) {

// 日期格式为年-月-日

String date1Str = "2023-10-01";

String date2Str = "2023-10-23";

// 将字符串转换为 LocalDate 类型

LocalDate date1 = LocalDate.parse(date1Str);

LocalDate date2 = LocalDate.parse(date2Str);

// 获取两个日期之间的全部日期

long daysBetween = ChronoUnit.DAYS.between(date1, date2);

for (int i = 0; i <= daysBetween; i++) {

LocalDate currentDate = date1.plusDays(i);

System.out.println(currentDate);

}

}

}

运行结果为:

2023-10-01

2023-10-02

2023-10-03

...

2023-10-22

2023-10-23

在这段代码中,我们使用了 ChronoUnit.DAYS.between() 方法来计算两个日期之间的天数差。然后使用 for 循环遍历从起始日期到结束日期的每一天,并将它们打印出来。通过 LocalDate.plusDays() 方法,我们可以方便地增加指定的天数得到下一个日期。这样就能够输出起始日期到结束日期之间的全部日期。

相关推荐
MATLAB代码顾问1 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
wuminyu2 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
万粉变现经纪人3 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒3 小时前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼3 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
callJJ4 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
小郑加油4 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
AC赳赳老秦4 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
KuaCpp4 小时前
C++面向对象(速过复习版)
开发语言·c++
wbs_scy5 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言