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

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

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

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

相关推荐

您可能没有权限使用网络资源win7

方法如下:1、点击桌面右下角的【网络图标】,在打开的选项中,选择【网络和共享中心】;2、选择【本地连接】,在打开的窗口中,点击【属性】;3、本地连接属性窗口中,双击【Internet协议版本4(...

iso9001七大管理原则(iso 7项管理原则)

ISO9001质量管理八项原则是ISO9001质量管理体系的核心理论基础。全球竞争的不断加剧,质量管理成为越来越成为所有组织管理工作的重点。原则一:以顾客为中心原则二:领导作用原则三:全员参与原则四:...

手机如何切换成ie浏览器(手机浏览器怎么切换成电脑浏览器)
手机如何切换成ie浏览器(手机浏览器怎么切换成电脑浏览器)

手机(安卓系统、IOS系统)不支持IE浏览器的。IE浏览器属于Trident内核,而且IE版权归微软所有,所以手机不能使用IE浏览器。1、进入手机浏览器,选择三字形的按钮。2、选择设置。3、在这里设置这里选择浏览器标识。4、然后点击电脑。5...

2026-01-21 08:21 liuian

哪个牌子的u盘好用耐用(什么牌子的u盘最好最耐用知乎)

雷克沙u盘质量最好最耐用品牌,雷克沙U盘,外观比较精致,小巧方便携带,和市面上常见的小型挂钥匙的U盘放在一起比较一下,大小完全一样,做工优良,外壳采用锌合金材质,读写速度也很快,USB3.1读写等级,...

怎么打开文件夹的隐藏文件(怎么打开文件夹的隐藏文件图标)
怎么打开文件夹的隐藏文件(怎么打开文件夹的隐藏文件图标)

步骤/方式1以Windows7为例,首先在我的电脑中选择需要显示隐藏文件的文件夹,点击工具选项卡,如下图所示。步骤/方式2点击工具选项卡下的文件夹选项,进入文件夹选项对话框,如下图所示。步骤/方式3在隐藏文件和文件夹选项中,勾选显示隐藏的文...

2026-01-21 07:55 liuian

计算器下载安装到手机桌面上

在手机桌面上安装计算器应该有几种方法,我以Android手机为例来说明:1.从应用商店下载安装:打开GooglePlay商店或其他应用市场,搜索计算器应用,下载并安装即可。安装完成后,可以在应用...

桌面壁纸图片2025最火爆(女人最旺财的手机壁纸)

动态壁纸2022最火可以设置声音,具体步骤如下:1.打开设置应用程序,然后选择“声音和通知”。2.在“声音和通知”选项卡中,选择“声音”。3.在“声音”选项卡中,你可以选择想要在动态壁纸上播放的...

怎么查看路由器登录密码(怎么查看路由器密码在哪里)

1首先,我们需要找到路由器,然后查看路由器的登录地址,一般在路由器的底部铭牌上会便有该路由器的参数,包括登录地址。此处我以腾达无限路由器为例,上面标识的IP地址就是该路由器的登录地址。2找到路由器的登...

电脑无法启动windows7一键还原

恢复出厂设置方法如下:1、开机进入系统前,按F8,进入Windows7的高级启动选项,选择“修复计算机”。2、选择键盘输入方法。3、如果有管理员密码,需要输入;如果没有设置密码,直接“确定”即可。4...

流氓杀毒软件排行榜(流氓杀毒软件排行榜前十名)
流氓杀毒软件排行榜(流氓杀毒软件排行榜前十名)

360杀毒不是流氓软件。360很不错的,它的软件实用性强,而且还是永久免费的,很多人都喜欢用。第一,它是永久免费的。第二,免费不是做样子看的,它会不断地更新。第三,跟其他杀毒软件相比,360杀毒占用系统资源很少,全盘扫描也基本不占用资源。...

2026-01-21 06:37 liuian

苹果手机怎样更新最新系统(苹果手机如何更新最新版)

打开iphone手机的设置,设置里选择通用,进入软件更新,点击更新到最新系统,等新系统下载完成后,直接安装升级就可以了。iphone更新系统需要进入系统通用设置,在软件更新中就可以下载系统安装包并更新...

win7激活软件暴风激活工具(暴风激活工具激活不了win7系统怎么办)

用小马激活的,没用过暴风激活,一般常用的激活工具有:win7小马激活工具、Win7activation、windowsLoader、OEM等,根据情况的不同需要使用不同的激活软件,一般都需要多试几...

qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
windows10政府版(windows10政府版取消屏保)

按下Windows+R,输入“gpedit.msc”回车,在本地组策略编辑器中依次点击:计算机配置-Windows设置-安全设置-本地策略-安全选项,在右侧找到“交互式登录:无需按Ctrl+Alt+D...

win10无法识别usb设备如何解决
win10无法识别usb设备如何解决

若windows10操作系统中无法识别U盘,可尝试通过以下两种方式进行操作:方法一:打开控制面板(小图标查看)---设备管理器,展开通用串行总线控制器,右键单击设备选择“卸载”,每个设备重复以上操作。完成后,重新启动计算机,系统会自动安装...

2026-01-21 05:21 liuian