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

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

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

在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开机启动很慢怎么回事)

1.清理系统垃圾:使用Windows自带的磁盘清理功能或者第三方清理工具进行系统垃圾清理,如CCleaner。2.禁用开机启动项:打开任务管理器,在“启动”选项卡中禁用不必要的程序开机启动。3.升级硬...

gho镜像文件怎么安装系统(gho镜像安装系统步骤)

那你就有两个系统了大哥,C盘一个系统,装D盘一个系统,一样道理把硬盘分为两个主分区,然后各自给一个副的分区给他,然后把系统分别装在两个主分区以上。如果你只要一个系统,不得不把你C盘格式化掉然后装在C盘...

windows10开机启动项怎么设置

方法一:  1、可以在win10系统桌面底下的“任务栏”空白处,鼠标右击选择“任务管理器”并打开;  2、在任务管理器中,选择“启动”那栏,就可以看下显示的开机启动项,我们把不想要的开机启动项...

萝卜官网入口(萝卜官网入口app)

1.打开浏览器,输入“luobotechan.com”进入萝卜投研官网;2.在官网首页上,您可以看到智能选股、龙虎榜、资金流向、A股万花筒、新股日历等板块,点击您需要的内容即可;3.如果您还没有...

百度邮箱免费注册(百度邮箱注册入口)

百度没有电子邮箱服务,有以下几点:第一,目前百度的主业是搜索引擎功能第二,电子邮箱服务中网易推出免费邮箱服务较早,系统及运行较为成熟,占国内邮箱的市场份额大第三,百度决策者在没有必胜的把握在下,都不会...

无u盘装系统(无u盘重装系统步骤win10)

安装操作系统有多种方式,除了使用Ghost还有其他的方法。以下是一些常见的安装操作系统的方法:1.使用系统安装光盘或U盘:准备一张系统安装光盘或制作一个系统安装U盘,插入计算机,重启电脑,按照提示进...

键盘失灵自动不停输入(电脑突然自己乱跳乱按)

1.进水:这种情况都比较好处理,一般都是部分按键不能正常使用,进水之后我们先断掉键盘的供电,用螺丝刀拆开键盘,我们就可以看到里面的键盘电膜:我们找到每个卡扣,揭开膜我们可以看到里面的触点,我们检查...

硬盘损坏无法进入系统(硬盘损坏导致无法开机)

1.检查软驱中是否有软盘,然后进BIOS,把启动顺序调解为A在最后,顺便把A给关闭了。  2.BIOS设置中将“防病毒保护”设为启用。如果是这个原因,进BIOS,关闭“防病毒保护”。  3.写引导区错...

手机壁纸图片免费(手机壁纸图片免费2025)

1,打开华为手机进入系统后,点击自带的主题应用进入。2,在主题的主界面,选择动态壁纸的图标进入。3,进入后可以看到华为手机主题内的动态壁纸,向上滑动,可以挑选自己喜欢的壁纸。4,选择自己的喜欢的动态壁...

windows10大白菜u盘安装教程

win10系统用usb安装步骤:准备工具:1、大白菜u盘2、win10系统镜像包具体步骤:一、制作u启动盘1、从网上下载u启动u盘启动盘制作工具安装包2、安装u启动u盘启动盘制作工具3、插入u盘,打开...

镜像下载什么意思(下载镜像需要多久)

镜像下载是指在互联网上获取文件的过程中,从一个服务器上下载文件的副本或镜像。这些镜像通常是存储在不同地理位置的服务器上,以提供更快的下载速度和更可靠的文件传输。镜像下载可以帮助用户避免因为单个服务器带...

电脑读不出来u盘(电脑读不出来u盘怎么回事)

电脑无法识别u盘四种方法方法1:取消勾选“隐藏的驱动器”  1、首先要排除是不是U盘损坏的问题,当U盘插入到其他电脑,如果可以读出来,那么肯定不是U盘的问题了。  2、很有可能是U盘在你的电脑上被隐藏...

仙剑奇侠传五前传(仙剑奇侠传五前传攻略全图文)

一、《仙剑奇侠5》1、小蛮(李逍遥外孙女,海棠(阿奴)徒弟)小蛮,单机游戏《仙剑奇侠传五》的第二女主角。女娲族的直系后裔,李忆如之女,由“巫月神教”掌门海棠夫人(阿奴)抚养长大。虽然娇蛮,但心地善良。...

usb无线网卡价格(usb无线网卡价格多少)

一般的USB无线网卡,就是很小的那种也就20左右吧,但接收范围小,如果路由器离你不是太远,这种就能用。如果接收别人家的无线信号,离的比较远的得买个大功率的,淘宝上也就50左右,个头比较大,但接受距离信...

小马激活office2016(小马激活office)

很简单,重装系统win7,这个可以激活的,然后根据推送升级win10,如果有强迫症可以升级以后重新安装win10系统,以后都是自动联网激活的。小马激活官网是小马win7激活工具、小马win8激活工具、...