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

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

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

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

相关推荐

笔记本加内存条(笔记本加内存条有什么好处)
  • 笔记本加内存条(笔记本加内存条有什么好处)
  • 笔记本加内存条(笔记本加内存条有什么好处)
  • 笔记本加内存条(笔记本加内存条有什么好处)
  • 笔记本加内存条(笔记本加内存条有什么好处)
电脑主机亮一下灭了反复循环

电脑开机后显示屏幕亮,一会灭一会亮来回的循环,可能这里面有几个问题,一个是看看你的这个显示器是不是后面那个插头,那个信号线是不是松了,还有要看一下电源线是不是你轻微的碰它一下就掉了,再碰一下它就结好...

win10网卡驱动装不上(win10网卡驱动装不上提示版本低怎么办)

WIN10系统无线网卡驱动安装不上的解决方法WIN10系统驱动安装不上,总是安装失败,一般是无线网卡硬件设备出了问题。试想想,驱动本身就是为对应设备服务的,设备不存在,驱动固然安装不了。一般两种情况:...

king root官方下载安装(king root软件)

1、首先你需要打开进入强力一键root的界面菜单,并将手机连接到电脑上,再点击“开始连接”功能按钮。2、如果弹出“检测到当前手机未开启调试模式”的提示框,请先打开手机的设备菜单,点击启用“USB调试模...

请问有windows8系统吗(windows8还可以用吗)

可以用的。这是一款非常不错的系统,在原先系统的基础上做了很多升级和优化,开关机速度和处理文件的速度大大提高,而且还增加了很多新功能,还是非常值得升级的Windows8是由微软公司开发的,具有革命性变...

电脑快速复制粘贴键(电脑的快速复制粘贴快捷键)
电脑快速复制粘贴键(电脑的快速复制粘贴快捷键)

Windows系统复制快捷键:Ctrl+C粘贴快捷键:Ctrl+VMac系统复制/粘贴快捷键:Command+C/V拓展资料:1、复制快捷键:【Ctrl】+【C】我们选中需要复制的文件,鼠标右键单击,然后选择“复制”,选中的内容就已经成功复...

2026-01-28 14:21 liuian

tplink登陆网址(tplink登录路由器的网址)
tplink登陆网址(tplink登录路由器的网址)

TP-LINK路由器的登录入口(管理页面)地址是tplogin.cn,我们只需打开浏览器,在浏览器顶部的地址栏里输入路由器的管理页面地址tplogin.cn就能打开tplink登录入口页面了。tplogincn登录首页知识点:TPLINK路...

2026-01-28 14:05 liuian

dell设置u盘启动项(dell进去u盘启动设置)

1、首先将启动U盘插入USB接口,若支持USB3.0接口启动的,建议使用USB3.0接口,会提高启动速度。  2、按下开机键后,按F2(戴尔笔记本一般都是F2,提示会在电脑屏幕左下角或左上角)...

找回密码和账号(找回密码和账号修复是一个东西吗)

1、当我们忘记密码或者密码输入错误的时候,会有个对话框提示我们。对话框里有个"找回密码",就点这个。2、跳转到QQ安全中心,点上面菜单栏的“密码管理”,再选择“账号申诉”。3、输入要找回密码的QQ号和...

win7系统u盘重装教程(win7系统u盘重装系统步骤)
win7系统u盘重装教程(win7系统u盘重装系统步骤)

u盘怎么装win7系统步骤如下:1、先下载Windows7镜像,根据自己需求选择下载的版本:简化版、家庭基础版、家庭高级版、企业版等。2、下载工具软碟通。直接在搜索引擎中输入“软碟通”,选择合适的下载地址,直接下载安装即可。3、制作系统U...

2026-01-28 13:21 liuian

google store(google store apk)
google store(google store apk)

步骤/方式1打不开,有可能就是网络连接异常造成的,首先将无线路由器找出来步骤/方式2然后将无线路由器重新启动一下①可能是因为国内的用户需要下载辅助工具才能进入该软件进行浏览。②可能是该服务器端发生了一些故障,正在进行维护和升级。暂时停止了对...

2026-01-28 13:05 liuian

xp系统升级win7多少钱(xp升级windows7需要什么条件)

电脑XP系统换成WIN7系统的硬件最低要求是哪些?即硬件配置要满足WIN7系统对硬件最低配置要求才行,下面是WIN7系统32位和64位的最低配置要求:1.CPU:1GHz32位或2GHz64...

最新路由器性价比排行榜(最新路由器性价比排行榜)

推荐的7款,300元以下,高性价比路由器:1、小米|红米AX3000:高通芯片,最便宜的WiFi6路由之一2、华为|AX3WiFi6路由:入门档位,最便宜的WiFi6路由之一3、TP-Lin...

win7旗舰安装版(win7 旗舰版 下载)
  • win7旗舰安装版(win7 旗舰版 下载)
  • win7旗舰安装版(win7 旗舰版 下载)
  • win7旗舰安装版(win7 旗舰版 下载)
  • win7旗舰安装版(win7 旗舰版 下载)
in浏览器(in浏览器怎么卸载)

IE浏览器的全称是InternetExplorer。InternetExplorer,是微软公司推出的一款网页浏览器。原称MicrosoftInternetExplorer(6版本以前)和Wi...