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

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

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

在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.硬件故障:硬件故障也可能导致电脑无法开机,如内存条故障、显卡故障、主板故障等。3....

win10系统如何分盘(win10怎么分盘合适)

在win10笔记本电脑中,可以通过“磁盘管理”工具来进行分盘操作。首先,打开“磁盘管理”工具,找到需要分盘的磁盘,右键点击选择“新建简单卷”,进入新建向导,设置分区大小和盘符,完成分盘操作。需要注意的...

下载的系统是iso怎么安装(我告诉你下载的iso怎么安装)

ISO系统安装详细教程步骤如下:1.准备所需材料:一台符合系统要求的计算机、ISO系统文件、可启动的USB驱动器或光盘、系统激活密钥(如果需要的话)。2.制作启动盘:如果你使用USB驱动器作为启动...

sd卡读卡器(sd卡读卡器电路图)
sd卡读卡器(sd卡读卡器电路图)

SD卡读卡器就是读取sd存储卡的设备,SD读卡器在插上SD卡和优盘功能一样。使用USB接口,读卡器对计算机来说类似一个USB的软驱,作用也类似,只是读取的不是软盘,而是各种闪存卡。使用时把SD卡插入对应卡槽,再把另一头的USB头插入计算机...

2026-01-24 01:55 liuian

win10系统精简教程(win10精简版怎么样)

在Windows10桌面上打开“此电脑”在打开的页面当中,我们可以看到这时系统盘(C盘)可用空间已经不多这时,我们用鼠标在该C盘上面,点击鼠标右键,在里面选择属性打开4进入到C盘属性查看页面,...

苏州3d打印公司有哪些(苏州工业园区3d打印公司)

苏州3d打印房子公司位于苏州工业园区的盈创科技有限公司内,是由盈创和中国建筑共同开发和建造的。具体地址位于苏州工业园区东方大道北金谷路东。乘车路线:166路公交车至星塘街东方大道北下,往前走50米左转...

window7下载微信(windows 7怎么下载微信)

排查网络或是电脑系统的问题,可以重启试试。排除电脑或者网络问题以后,那可能是微信客户端不稳定。也许是文件损坏了或者是系统删除了导致打开出现故障,亦或是被破坏了。第二步,我们先把打开故障的微信客户端在控...

32位win7纯净版系统下载(win7 32位纯净版镜像文件)

凡是写的X86的都是32位系统。凡是64位系统,都有XXX-64-XX的字样。你没有发上来,无法判断。32位旗舰版,应该是类似cn_windows_7_ultimate_x86_dvd_x15-659...

enter(entrepreneur)

回车键在电脑键盘上有一个写有Enter或return字样的按键,被叫做“回车键”。其中Enter是Windows系统的叫法,而macOS中叫做return。有的Windows电脑的enter按键会有一...

最强升级系统赵放(最强升级系统赵放等级划分)

女主只有一个,就是他青梅竹马的女朋友刘佳丽

联想线上客服(联想客服是24小时的吗)

网上买的联想电脑如果要有售后必须要在正规的网上平台购买,才能享受到售后服务的,所以在网上购买店联想电脑的时候一定要在联想电脑的专卖店进行购买,下单后同时他就会生成售后服务保障单据,在网上购买的联想电脑...

绿色版photoshop(智慧彩票app下载绿色版)

1.安装方面:Photoshop绿色版的话,体积小巧,方便运用,而正规下载安装的体积较大,安装比较麻烦。2.软件功能方面:其实绿色版的话一般比较简洁,功能的话一般是简化了的,而正规渠道下载安装的比较齐...

显卡那个品牌那个好(显卡那牌子好)
  • 显卡那个品牌那个好(显卡那牌子好)
  • 显卡那个品牌那个好(显卡那牌子好)
  • 显卡那个品牌那个好(显卡那牌子好)
  • 显卡那个品牌那个好(显卡那牌子好)
讯飞输入法官方下载(讯飞输入法最新下载)

打开手机应用商店,在上面搜索条栏里输入讯飞软件下载方法/步骤分步阅读1/6首先,你要下载一个讯飞输入法,然后把讯飞输入法设为手机的默认输入法。2/6接下来,打开qq或微信,打开与好友的对话框,点击右下...

office 许可证有问题(office提示许可证有问题)
  • office 许可证有问题(office提示许可证有问题)
  • office 许可证有问题(office提示许可证有问题)
  • office 许可证有问题(office提示许可证有问题)
  • office 许可证有问题(office提示许可证有问题)