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

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

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

在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 的值,以及格式化输出的日期格式。

相关推荐

vga转hdmi连接线(vga转hdmi的)

  vga接口不能直接转换hdmi接口。  因为vga是模拟制式的视频传输,hdmi是数字制式的音视频传输,二者如需转换要使用专用的转换器方可实现。系...

桌面软件消失了怎么恢复(桌面消失的软件图标怎么恢复)

电脑桌面上的软件全没了的解决方法:桌面-点击鼠标右键-点击排列图标-点击显示桌面图标。在桌面上右键,点击-“个性化”-“更改桌面图标”,把需要的桌面项目打上勾,然后确定就行了。如果不行,可以按ctr...

系统软件是什么

软件系统(SoftwareSystems)是指由系统软件、支撑软件和应用软件组成的计算机软件系统,它是计算机系统中由软件组成的部分。它包括操作系统、语言处理系统、数据库系统、分布式软件系统和人机交互...

一体机和笔记本电脑哪个好(一体机电脑和笔记本哪个性能好)

一体机就是把所有硬件和接口全部集成到显示屏里面,他成为人们生活办公的好帮手,还节省空间,很简洁。一体机是中国一家极富创新性的国际化公司联想发明的。但是他的装不了很强大的硬件,只适合办公和家用,虽然也有...

重装xp系统的步骤(重装xp系统步骤图解)

创建可引导的USB或DVD安装介质。进入BIOS并从可引导介质启动。选择要安装WindowsXP的语言、时间和货币格式。接受许可协议并点击“下一步”。选择“自定义安装”选项。选择要安装Wi...

怎样跳过苹果id直接下载软件

你好,首先,oppo手机在设置中默认开启了应用宝安全检测,这意味着安装其他来源的应用时需要手动关闭此项功能。但是,即使关闭了应用宝安全检测,oppo手机仍然会对未在应用商店下载的应用进行风险检测。如果...

windows修复命令(win10 修复 命令)

1、在Windows10桌面依次点击“开始/Windows系统/控制面板”菜单项。2、在打开的控制面板窗口,点击上面的“系统和安全”快捷链接。3、在打开的系统和安全窗口中我们点击第一项“安全和维护”快...

哪个网站的win7系统比较好(哪个网站的win7系统最稳定)

这个是WIN7旗舰版的。cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.isoSHA1:2CE0B2DB34D76ED3F697CE148CB75944...

电脑无法安装驱动程序怎么办

1,要清除旧驱动程序文件,先要进入系统属性窗口,进入的快捷方法,在桌面“我的电脑”上右键,右键菜单中选择“属性”。  2,进入系统属性窗口后,选择“硬件”这一项。  3,进入硬件的界面,选择里面的“...

windows8系统怎么激活(windows8怎么激活windows10)

以下是激活Windows8的步骤:1.确保你的电脑已经连接到互联网。2.打开“开始”菜单并点击“PC设置”。3.在左侧导航栏中选择“激活”选项。4.在右侧的“激活Windows”部分,点击“...

window7下载不了东西(w7不能下载软件的原因)

Windows7电脑里浏览器无法下载,解决办法如下1、打开浏览器,点工具菜单——Internet选项;2、选择安全选项卡,点自定义级别;3、选中文件下载下的启用,点确定即可。*开始-所有-附...

qq怎么恢复一年前的聊天记录

既然都已删了一年多了,何必再要恢复以前的聊天记录。当初删的时候就觉得没必要交往和怀念。过去的就让它过去,寻找和自己志同道合的朋友,相信你一定能找到,加油你试一试这个第一步:在手机的微信上面打开右...

微软浏览器edge下载(微软浏览器edge下载安装)

可以使用以下方法。1、首先打开Edge浏览器,在浏览器右上角可以看到由三个点组成的“设置及其它”图标,使用鼠标点击该图标。  2、点击之后会在下方弹出Edge浏览器的菜单窗口,在窗口中找到“设置”这一...

台式机cpu温度多少正常范围(台式电脑cpu温度多少合适)

笔记本CPU温度正常范围是多少?笔记本电脑想必台式电脑散热效果要差很多,很多用户都担心笔记本温度过高烧坏掉,其实没必要那么担心,一般的笔记本电脑都带有温度过高自动断电的功能。下面来为大家普及一下笔记本...

电脑截图的快捷键是什么怎么截图
电脑截图的快捷键是什么怎么截图

第一种:Ctrl+PrScrn使用这个组合键截屏,获得的是整个屏幕的图片第二种:Alt+PrScrn这个组合键截屏,获得的结果是当前窗口的图片第三种:打开qq,使用快捷键Ctrl+Alt+A,这样可以在屏幕上的任何...

2026-01-16 03:21 liuian