java 遍历日期

java 遍历开始到结束的日期

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Main {
	
	public static void main(String[] args) {
			//日期格式化
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			try {
				//起始日期
				Date d1 = sdf.parse("2001-10-01");
				//结束日期
				Date d2 = sdf.parse("2001-11-04");
				Date tmp=d1;
				Calendar dd =Calendar.getInstance();
				dd.setTime(d1);
				//打印2001年10月1日到2001年11月4日的日期
				while(tmp.getTime()<=d2.getTime()) {
					tmp=dd.getTime();
					System.out.println(sdf.format(tmp));
					//天数加上1
					dd.add(Calendar.DAY_OF_MONTH, 1);
				}
			} catch (ParseException e) {
				e.printStackTrace();
			}
	}

}

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Java自带的DateTimeFormatter类和Files类来实现遍历日期文件夹并取最大日期。 首先,你需要指定日期文件夹的路径。假设该路径为"path/to/folder"。 然后,你可以使用以下代码来遍历该文件夹中的所有日期文件夹,并取得最大日期: ```java Path folderPath = Paths.get("path/to/folder"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); LocalDate maxDate = null; try (DirectoryStream<Path> stream = Files.newDirectoryStream(folderPath)) { for (Path path : stream) { String fileName = path.getFileName().toString(); try { LocalDate date = LocalDate.parse(fileName, formatter); if (maxDate == null || date.isAfter(maxDate)) { maxDate = date; } } catch (DateTimeParseException e) { // Ignore non-date folders } } } if (maxDate != null) { System.out.println("Max date: " + maxDate.format(formatter)); } else { System.out.println("No date folders found"); } ``` 解释一下代码: - 首先,我们使用`Paths.get()`方法来获取指定路径的`Path`对象。 - 然后,我们创建一个`DateTimeFormatter`对象,用来解析日期文件夹的名称。 - 接着,我们定义一个`LocalDate`变量`maxDate`,用来保存最大日期。 - 然后,我们使用`Files.newDirectoryStream()`方法来获取指定路径下的所有文件和文件夹,并使用`try-with-resources`语句来自动关闭流。 - 对于每个文件夹,我们取得其名称,并使用`LocalDate.parse()`方法来解析出日期对象。如果解析失败,则忽略该文件夹。 - 如果`maxDate`为空,或者当前解析出的日期比`maxDate`更大,则更新`maxDate`。 - 最后,如果`maxDate`不为空,则输出最大日期;否则输出"No date folders found"。 希望这个代码可以帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值