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

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

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

在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、打开浏览器---输入192.168.1.1(一般路由器地址是这个或者查看路由器背面的登录信息)进路由---输入用户名,密码,(默认一般是admin)。 方法二、1、路由器的...

win8为什么不能永久激活(windows8.1不能激活怎么办)

具体操作步骤如下:1、在Win8系统下使?Win+R键调出运?对话框,接着在运?窗?上输?gpedit.msc命令,打开本地组策略编辑器;2、在Win8系统本地组策略编辑器上,展开“Windows设置...

win7专业版激活密钥永久激活码大全2025

cad序列号和密钥是111-111111,可以通用的,但激活码则需要通过CAD2014注册机对申请号的换算才能得出结果,当然结果有很多,用户可以不断的Generate一个。1、直接打开wps程序或者用...

笔记本电脑怎么开热点(笔记本电脑怎么开热点共享)

笔记本开热点的方法是:1、打开电脑的设置,点击网络和Internet;2、点击最左侧的移动热点;3、打开热点的按钮,再点编辑按钮;4、在弹出的框中,可以对热点的网络名称,密码进行设置,点击保存...

显示隐藏文件夹怎么设置win7

要在Win7中显示隐藏文件,需依次打开“我的电脑”或“计算机”→点击“工具”→选择“文件夹选项”→在弹出的“文件夹选项”窗口中点击“查看”标签→在“隐藏文件和文件夹”选项中选择“显示隐藏的文件、文件夹...

公司电脑怎么共享文件(公司电脑怎样共享一个文件夹)

1.开我的电脑2.选择要共享的盘符或者文件。3.选择高级共享。4.勾选共享此文件夹,点击确定即可。5.接下来在去设置网络和共享中心,选择高级共享设置。6.选择,启用网络发现。7.接下来在其他电脑打开网...

北斗导航系统的应用(北斗导航系统应用案例)

北斗导航系统正成为未来不可或缺的时空信息平台,承载着物联网、智能驾驶、智慧城市等新兴技术对于高精度、高频次时空信息的需求。北斗导航系统与“一带一路”建设推进高度重叠,可以为芯片、终端、板卡、电子地图、...

win7自动关机设置教程(win7自动关机设置教程视频)
  • win7自动关机设置教程(win7自动关机设置教程视频)
  • win7自动关机设置教程(win7自动关机设置教程视频)
  • win7自动关机设置教程(win7自动关机设置教程视频)
  • win7自动关机设置教程(win7自动关机设置教程视频)
win7激活后不能进系统

安装安装包正版的才行用WIN7U版ISO全新安装一次,然后用windowsloader等软件激活工具激活就成了,你这个问题分明是激活出问题了!和升WIN10没什么关系。我家里有一台机子洗白后...

u盘写保护怎么修复(u盘写保护了该怎么办)

要解除U盘的写保护,可以尝试以下方法:物理开关:检查U盘是否有物理写保护开关,如果有,请将其关闭。注册表编辑(仅适用于Windows):打开Windows注册表编辑器(regedit),找到HKEY_...

装机联盟(装机联盟是什么)

装机联盟是否真的能够实现月入三万,这取决于多种因素,包括个人的能力、努力程度、市场环境、竞争状况以及装机联盟的具体运营模式和策略等。首先,装机联盟本身是一个合法的商业模式,它通过集合一群有共同兴趣和技...

版本下载(问道手游雷霆官方版本下载)

点击最新版本即可更新。1、可以通过下载一些应用助手类app,在这类软件里搜索想要下载的软件,点进详情后下滑,找到历史版本后就可以选择自己想要的版本了。2、可以直接通过浏览器或者一些网站进行搜索,这个方...

macbook air装win10(macbook air装win10后经常蓝屏)

要在MacBookAir上安装Windows10,可以按照以下步骤进行:下载Windows10ISO文件,并将其保存在MacBookAir的硬盘上。下载和安装BootCamp助理,该软件可...

xp电脑重装系统教程(xp电脑重装系统怎么操作)
xp电脑重装系统教程(xp电脑重装系统怎么操作)

既然悄问电脑怎么重装系统,咱就说的简单点一吧。分这么几步:1、准备个U盘,最少也要8G吧。2、下载个PE制作工具,现在网上到处都是,给你推荐一个吧。安装好后,插上U盘点按要求,下一步操作就可以,很简单的。3、在网上下载个系统。因为你对电脑了...

2026-01-20 23:05 liuian

海外应用商店下载

 一、打开手机,在手机桌面上找到“设置”一项,点击进入。 二、进入设置后,找到自己的ID一栏,点击进入。 三、进入AppleID后,找到“iTunesStore与Ap...