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

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

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

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

相关推荐

9月更新cf烟雾保护头怎么调最新

1、首先在桌面点击鼠标“右键”,然后选择“屏幕分辨率”。2、然后再点击“高级设置“。3、接着点击窗口中的“监视器”,将颜色改成为“增强色(16位)”。4、回到桌面,再次点击右键,然后点击“NVIDIA...

flash游戏播放器经典版(flash游戏播放器安卓最新版)

QQ空间的游戏大部分是网页游戏,如不是网页游戏就不能在安卓端或IOS端打开。而网页游戏又分flash游戏和H5游戏而QQ空间大部分游戏都是flash游戏,但是由于flash的漏洞和功耗实在太多,连自家...

神舟十五号(神舟十五号出征仪式)

神舟十五号,简称“神十五”,为中国载人航天工程发射的第十五艘飞船。神舟十五号正在进行紧锣密鼓地组装和测试。预计在2022年11月中旬发射升空。中国神州系列一共发射了11次,目前神州15号还没有生产约6...

空间万能查看器天涯2025(空间万能查看器天涯2023)

未中奖“勇闯天涯”是华润雪花主推的一个原创性营销活动,从05年推出至今,已经走过15年春秋。继探索雅鲁藏布大峡谷、探秘长江源、远征国境线,极地探索之后,2009年的“挑战乔戈里峰”是首次由中国人组织的...

微软账号官网(微软账号官网网址)

1使用浏览器,打开微软账号页面。进入页面之后,选择,创建账户。2在弹出的框里选择,同意并继续。3在弹出的框里选择,同意并继续。4这里以电话号码注册形式作为演示。设定登录密码之后,点击下...

电信测速(电信测速器在线测网速)

1、在IE浏览器上打开中国联通网上营业厅,在首页左侧的导航栏里面选择“便民服务”,然后再在展开的窗口上点击“宽带测速”。2、点击底下的那个“同意条款,开始测速”的按钮。3、完成以上步骤后,出现“Int...

硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
海马助手ios版官网(海马助手ios下载安装)

打开电脑管家等程序后,找到开机加速或者电脑加速,然后找到启动项,在里面一一查找有关于快用的程序,如果禁止了就都打开,保持在已开启的状态。然后再重新打开快用苹果助手试一试。设置--通用--描述文件第二...

自己怎么重装电脑程序(自己怎么重装电脑程序软件)

重装电脑程序的一般步骤如下:1.备份重要数据。在重装程序之前,请先备份重要的数据。这有助于防止在重装过程中出现不可预料的问题。2.确定需要安装的软件。运行一个系统文件检查器(SFC)工具,该工具将检查...

win10清理垃圾在哪(win10系统清理垃圾)

win10自动清理垃圾有用的,方法,1,首先清理无用的垃圾文件和很多临时文件,点开右下角通知然后点击所有设置。2,点击系统,进入系统之后点击存储,然后选择你要清理的磁盘。3,这里能看到该盘下面的所有文...

iso感光度大好还是小好(iso感光度的了解与运用技巧)

相机感光度(又称ISO)高和低是根据环境而定的,没有好与不好的说法。在光线比较暗的情况下把ISO调高的话会降低快门速度也就是说可以让照出的照片不是很模糊但是有得必有失,高的ISO使照片颗粒感很强的,低...

win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
flash中心有必要安装吗(flash一定要安装在c盘吗)

回答:要安装不安装会有问题的,如果不安装,会看不了网站上的视频(比如优酷、土豆、爱奇艺的),没法玩网页游戏,甚至可能会无法启动某些屏幕保护程序。现代的电脑不再需要安装AdobeFlashPlaye...

下列说法正确的是中国特色(下列说法错误的是a中国特色)

特色是一个事物或一种事物显著区别于其他事物的风格和形式,是由事物赖以产生和发展的特定的具体的环境因素所决定的,是其所属事物独有的。出处1.郁达夫《青岛、北平、北戴河的巡游》:“青岛的特色之一,是在她的...

好游快爆app下载安装(好游快爆手机版下载安装)

还算是安全的,好游快爆app专为玩家推荐好玩的爆款游戏、提供前瞻性的手游新闻、报道火热的新游戏,还有游戏实用攻略解析和游戏生动视频解说。好游快爆下载绝对是游戏爱好者自己的app,因为所有游戏均来自玩家...