在JavaScript中基于基准日期生成未来120天的日期数组
生成指定基准日期的未来120天日期数组
下面给你几种主流编程语言的实现方案,都能解析yyyymmdd格式的基准日期,生成包含未来120天(含基准日当天)的dd-mm-yyyy格式日期数组:
JavaScript 实现
// 输入的基准日期字符串(yyyymmdd格式) const baseDateStr = '20230926'; // 解析为Date对象(注意月份是0起始,所以要减1) const baseDate = new Date( parseInt(baseDateStr.slice(0, 4)), parseInt(baseDateStr.slice(4, 6)) - 1, parseInt(baseDateStr.slice(6, 8)) ); const dateArray = []; for (let i = 0; i < 120; i++) { // 每次创建新的Date对象,避免修改原基准日期 const currentDate = new Date(baseDate); currentDate.setDate(baseDate.getDate() + i); // 格式化日期为dd-mm-yyyy,不足两位补0 const day = String(currentDate.getDate()).padStart(2, '0'); const month = String(currentDate.getMonth() + 1).padStart(2, '0'); const year = currentDate.getFullYear(); dateArray.push(`${day}-${month}-${year}`); } // 输出结果数组 console.log(dateArray);
Python 实现
借助datetime模块可以轻松处理日期计算和格式化:
from datetime import datetime, timedelta # 输入基准日期 base_date_str = "20230926" # 解析为datetime对象 base_date = datetime.strptime(base_date_str, "%Y%m%d") date_array = [] for i in range(120): # 计算当前日期 current_date = base_date + timedelta(days=i) # 格式化为dd-mm-yyyy date_str = current_date.strftime("%d-%m-%Y") date_array.append(date_str) print(date_array)
Java 实现(Java 8+)
使用Java 8引入的LocalDate类,日期处理更简洁:
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; public class DateGenerator { public static void main(String[] args) { String baseDateStr = "20230926"; // 解析基准日期 LocalDate baseDate = LocalDate.parse(baseDateStr, DateTimeFormatter.ofPattern("yyyyMMdd")); List<String> dateArray = new ArrayList<>(); DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); for (int i = 0; i < 120; i++) { LocalDate currentDate = baseDate.plusDays(i); dateArray.add(currentDate.format(outputFormatter)); } System.out.println(dateArray); } }
以上方案都会生成包含120条记录的数组,从基准日当天开始,依次往后递推119天,完全符合你给出的示例格式。
内容的提问来源于stack exchange,提问作者Rosey
相关产品推荐
相关产品推荐

