百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

嘿,轻松获取区间内所有日期的Golang小技巧!

liuian 2025-02-04 15:05 92 浏览

在Go语言中,获取两个日期之间的所有日期可以手动实现一个函数来完成。以下是一个示例函数,它会返回一个日期切片,包含从开始日期到结束日期(包括这两个日期)的所有日期:

package main

import (
	"time"
)

// getDatesInRange 返回从 startDate 到 endDate(包括这两个日期)的所有日期。
func getDatesInRange(startDate time.Time, endDate time.Time) []time.Time {
	dates := make([]time.Time, 0)
	currentDate := startDate

	for currentDate.Before(endDate) || currentDate.Equal(endDate) {
		dates = append(dates, currentDate)
		currentDate = currentDate.AddDate(0, 0, 1) // 添加一天
	}

	return dates
}

func main() {
	startDate := time.Now() // 假设从当前日期开始
	endDate := startDate.AddDate(0, 1, 0) // 假设结束日期是下个月今天 .Add(-24 * time.Hour)

	datesInRange := getDatesInRange(startDate, endDate)
	for _, date := range datesInRange {
		// 输出日期,格式化为 YYYY-MM-DD
		formattedDate := date.Format("2006-01-02")
		println(formattedDate)
	}
} 

// 输出
2024-07-30
2024-07-31
2024-08-01
2024-08-02
2024-08-03
2024-08-04
2024-08-05
2024-08-06
2024-08-07
2024-08-08
2024-08-09
2024-08-10
2024-08-11
2024-08-12
2024-08-13
2024-08-14
2024-08-15
2024-08-16
2024-08-17
2024-08-18
2024-08-19
2024-08-20
2024-08-21
2024-08-22
2024-08-23
2024-08-24
2024-08-25
2024-08-26
2024-08-27
2024-08-28
2024-08-29
2024-08-30

这个函数首先创建一个日期切片 dates,然后使用一个 for 循环来逐天递增日期。currentDate.Before(endDate) 检查当前日期是否早于结束日期,而 currentDate.Equal(endDate) 确保包含结束日期本身。currentDate.AddDate(0, 0, 1) 用于将当前日期增加一天。

这个示例使用了 time.Time 类型,它是Go语言中处理日期和时间的标准方式。可以根据需要调整 startDateendDate 的值,以及格式化输出的日期格式。

相关推荐

中文 繁体字在线转换(中文转繁体字转换器下载)

1、在搜索栏输入“繁体字转换器”。 2、就可以看到在线搜索的工具,在线可以选择多种字体的转换。输入需要转换的字体,在点“转换”,需要复制,就点“复制结果”。 提醒:这里的“ctrl...

一键关闭win10自带杀毒软件(如何关闭win10自带杀毒系统)

方法一:通过设置临时关闭WindowsDefender  1、首先点击开始,再点击设置。?  2、然后点击更新和安全。?  3、在左侧列表中选择Windows安全中心,在右侧选择打开Windows...

彻底关闭手机qq动态入口(彻底关闭手机qq动态入口设置)
  • 彻底关闭手机qq动态入口(彻底关闭手机qq动态入口设置)
  • 彻底关闭手机qq动态入口(彻底关闭手机qq动态入口设置)
  • 彻底关闭手机qq动态入口(彻底关闭手机qq动态入口设置)
  • 彻底关闭手机qq动态入口(彻底关闭手机qq动态入口设置)
qycache是什么文件

 1、qycache是爱奇艺的缓存文件夹,观看爱奇艺视频时自动缓存的,这个文件夹可以删除。2、qycache是爱奇艺观看视频产生的,不能更改其位置,关闭爱奇艺网络组件服务,可以删除它,但是再...

window7下载哪个版本的ps(windows7下载什么ps最好)

2015版的photoshop,具体的安装步骤如下:1、首先,在电脑上找到ps安装包的存放位置,然后点击安装程序。2、出现对话框提示可以直接点击忽略并继续。3、然后安装程序就会开始初始化了。4、初始...

有手机有必要买平板吗(普通人有必要买平板吗)

平板和手机相对而言,手机更实用一些,因为手机可以实现平板上的很多功能,而且手机占用空间比较小,更加方便携带,并且手机是具备基础的通话功能,可以更好地连接网络,同时也可以接打电话,收发短信的,相对而言,...

怎么调试路由器连接(如果调试路由器)
  • 怎么调试路由器连接(如果调试路由器)
  • 怎么调试路由器连接(如果调试路由器)
  • 怎么调试路由器连接(如果调试路由器)
  • 怎么调试路由器连接(如果调试路由器)
一线固态硬盘品牌(一线固态排行)

星自家的存储芯片,三星芯片在业内是大定性家公认的性能好稳定性强。?2浦科特京东旗舰店入手指数4.6浦科特固态硬盘速度稳定性不错,当大的移动硬盘完全无压力。大品牌的也就浦科特的性价比最高了,而且都是用...

ios下载入口(漫趣漫画ios下载入口)

进入方法:1.首先,打开浏览器,搜索e站。2.点击e站官网进入e站。3.点击右上角的【尚未登录】,前往登录/注册。4.点击右上【没有账号,点击注册】按钮前往注册。5.输入注册所需信息,点击注册进行注册...

hp laser ns 1020驱动(hp laser ns mfp1005驱动)

打印机控制面板上的故障指示灯,即显示了十2小感叹号形状的指示灯平时不亮,只有打印机有故障时才亮,故障原因可能是缺纸,打印墨水不足,卡纸等,同时显示框内会说明故障原因,只要解决了故障,再点击O按钮,故障...

万能钥匙直接打开(万能钥匙直接打开万能钥匙)

首先打开WIFI万能钥匙,进入页面后,你可以看到首页中有各个不同的wifi网络;如果有可以连接的网络,会在wifi名称后面显示一把蓝色的钥匙,选择某一wifi名称后面的【点击立即连接】;在弹出的小窗...

windows98镜像iso下载(win98img完整版镜像下载)

您好,1.首先,你需要下载Windows98安装镜像文件。你可以在网上搜索并下载一个合适的镜像,然后将其保存到你的计算机上。2.打开Limbo模拟器,并单击添加按钮以添加新的虚拟机。3.在虚拟...

电脑excel截图快捷键(电脑excel截屏)

excel没有局部截图快捷键,但是可以将需要截图的部分选中后粘贴为图片,具体操作步骤如下: 1. 打开excel表格,选中需要截图的区域,单击鼠标右键,选择复制;2.&nbs...

小米平板2(小米平板2刷win10)

去年给我家老太太买了个华为m2,8英寸,一千二。平时看电视剧斗地主刷抖音,刚买回来时我试着安装了王者荣耀,也不卡。优点是屏幕足够大,清晰度也高,缺点是电量差点事儿,偶尔出现卡顿,次数忽略不计。小米没用...

win10安全模式下修复系统(win10 安全模式 修复)

不充分。因为若Windows10无法修复也无法进入安全模式,则说明该操作系统可能存在严重的软件或硬件问题。虽然可以通过其他方式来解决这个问题,但需要投入大量的时间和精力进行在操作系统的备份、重装或修...