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

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

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

在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.打开手机上的浏览器,进入浏览器的官方网站,例如GoogleChrome的官网https://www.google.com/chrome...

双系统怎么设置开机选择系统

工具/材料:以联想ThinkPad笔记本电脑为例。1、首先在联想ThinkPad笔记本电脑开机时,按下回车键。2、然后按F12按键,进入了BIOS设置窗口主界面。3、之后在BIOS设置窗口上,选择“S...

系统之家win7旗舰版u盘安装(系统之家win7纯净版u盘)

完整的安装步骤如下:1、下载安装U启动。2、安装完成U启动后,双击打开U启动,并将U盘接入电脑USB接口,U启动会自动识别接入的U盘。再点击一键制作启动U盘,U启动就会开始制作U盘启动盘。3、弹出的警...

新买的电脑如何分区(新买的电脑如何分区硬盘)

如何给新硬盘分区?方法一:磁盘管理分区1、右键桌面上的“此电脑”图标,点击管理。2、在计算机管理界面点击“磁盘管理”。3、右侧界面,可以看到在C盘旁边有一个未分区的空白磁盘!右键点击该磁盘,选择“新建...

苹果装win10系统(苹果装win10系统好用吗)

1、把启动系统U盘插入苹果电脑USB口。2、按下电源开机键后立马反复按ALT键(苹果电脑没有BIOS设置只有启动项选择,这里按下的ALT键就相当于按普通电脑的F12键功能作用一致)。3、这时候出现的画...

64位系统手机下载

手机下载64位应用的方法如下:其实很简单,各位O粉只要在自带的软件商店里下载标有64位的应用即可,下载安装后就可以卸载原先的32位应用。如果不是拿OPPO手机的朋友,可以下载OPPO“软件商店”,安装...

迅雷app下载官网下载(迅雷app下载官网下载不了)

方法是打开迅雷后,迅雷的右上角有个狗狗影视资源搜索,在搜索里面输入想要下载的电视资源即可。补充(要想下载哪个资源就点相关资源的下载链接按钮,马上会弹会迅雷下载对话框,这时要选择在电脑里往哪里存储如:d...

win7没有中文语言包(win7系统没有中文)

您好,如果您的Windows7没有.NETFramework,您可以手动下载并安装.NETFramework最新版本。您可以从Microsoft官网下载适合您的Windows7版本的.NET...

电脑公司系统纯净版(纯净版系统和办公版系统)

纯净版就是没有第三方软件,如360,QQ,浏览器等。装机版安装快,软件齐全。纯净版与装机版都是修改过的系统,旗舰版与这两种不是一个概念,旗舰版只是微软发布的系统中的一个版本,其中有家庭版,专业版,旗...

电脑公司windows7系统旗舰版

如果您是追求完美者,要求功能越多越好的朋友建议选择旗舰版,因为这个版本是公认Windows7系列中最好的版本。旗舰版是目前最为热门的Wdinwos7操作系统版本,因为它拥有了windows7所有版本的...

下载手机app客户端下载安装(手机app下载安装官方)

首先进入荣耀应用市场,找到你需要下载的APP的名字搜索,搜索完成之后点击下载并且安装即可,非常方便。这款手机采用的是骁龙778g处理器,支持五计算膜全网动工,它的保温达到了50万分以上,并且后置的摄像...

360清理卫士最新版免费的(360清理大师官方网站)

360的“清除系统垃圾”功能,不会删除任何关键的系统文件,只会清除一些无效的系统垃圾文件,例如回收站中的待删除文件、系统产生的临时文件等。  而有一些游戏是会产生大量垃圾文件的,比如计算游戏玩家视角时...

联想笔记本电脑客服(联想笔记本咨询客服)

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

pp助手网页版(pp助手 pc)

借助电脑端的pp助手安装:第一步,可在电脑安装pp助手,然后将iPad连接至电脑;第二步,下载pp助手安装到iPad(一般会自动安装)。作为国内领先的应用分发平台,PP助手同时支持iPhone、iPa...

怎么关掉360休眠壁纸(怎么关掉360休眠壁纸声音)

可以通过以下步骤来关闭360休眠壁纸:1.找到桌面上的“360休眠壁纸”图标,右键点击。2.选择“设置”,在下拉菜单中点击“关闭”选项,即可关闭360休眠壁纸。3.如果您不想再次启用360休眠壁纸,可...