golang 获取指定年份中的所有天数

Go语言实现月份天数计算:原理、优化与应用 日期处理是软件开发中的基础需求,其中月份天数计算涉及闰年判断、月份规则等核心算法。通过数组存储各月天数和条件判断实现闰年检测,可以构建高性能的日期计算工具。在Go语言中,这种算法既可以通过标准库time包实现,也能用优化后的自定义函数获得更好性能。该技术广泛应用于日历组件开发、账单系统周期计算等场景,特别是在需要处理大量日期数据的报表系统中,优化版本相比标准库实现能带来30倍以上的性能提升。合理的边界检查和错误处理机制还能增强代码健壮性,满足企业级应用的需求。 阅读详情

用途

获取指定年份/月份中的所有天数

package main

import (
    "fmt"
    "time"
)

func main() {
    days := make([]string, 0)

    year := time.Now().Year()

    for month := 1; month <= 12; month++ {
        for day := 1; day <= 31; day++ {
            //如果是2月
            if month == 2 {
                if isLeapYear(year) && day == 30 { //闰年2月29天
                    break
                } else if !isLeapYear(year) && day == 29 { //平年2月28天
                    break
                } else {
                    days = append(days, fmt.Sprintf("%d-%02d-%02d", year, month, day))
                }
            } else if month == 4 || month == 6 || month == 9 || month == 11 { //小月踢出来
                if day == 31 {
                    break
                }
                days = append(days, fmt.Sprintf("%d-%02d-%02d", year, month, day))
            } else {
                days = append(days, fmt.Sprintf("%d-%02d-%02d", year, month, day))
            }
        }
    }

    fmt.Println(days)

}

//判断是否为闰年
func isLeapYear(year int) bool { //y == 2000, 2004
    //判断是否为闰年
    if year%4 == 0 && year%100 != 0 || year%400 == 0 {
        return true
    }

    return false
}
go语言:实现通过月份和年份,并返回其中的天数算法(附完整源码) 阅读详情

相关推荐

CodeBuddy 接入 MCP,一键生成网站!

2024 年 11 月,Anthropic 公司搞了个挺有意思的新玩意 - Model Context Protocol(模型上下文协议)简称为 MCP 协议。简单来说,它就是给 AI 和各类工具数据之间搭了个标准化的”桥梁”,让开发者不用再为对接问题头疼了。mcp.so如下图所示,这是 mcp.so 网站中的 MCP Server。使用百度/高德地图分析旅线计算时间接 Puppeteer 自动操作网页使用 Github/Gitlab 让大模型接管代码仓库。

悟空聊架构的专栏 1943

三种语言实现_全年的所有日期

闰年的介绍 闰年: 年份能整除4 但整除100 当中只有整除四百的属于闰年 也就是说: 400年中只设97个闰年 100, 200, 300 均不属于闰年 python的实现代码 def get_all_day(year): is_r = False if year % 4 == 0: is_r = True if year % 100 == 0 and year % 400 != 0: is_r = False for i

u010996026的博客 240

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3669

GO语言查询指定年份指定月份有多少天

func getYearMonthToDay(year int, month int) int { // 有31天的月份 day31 := map[int]bool{ 1: true, 3: true, 5: true, 7: true, 8: true, 10: true, 12: true, } if day31[month] == true { return 31 } // 有30天的月份 day30 := map[int]bool{ 4:

Kaicen的博客 3221

手把手教你用Payload Dumper工具,把官方卡刷包变成线刷包救砖(附Fastbootd进入方法)

本文详细介绍了如何使用Payload Dumper工具将官方卡刷包转换为线刷包进行救砖操作。通过提取payload.bin文件中的分区镜像,并利用fastbootd模式完成刷写,帮助用户解决安卓设备系统故障问题。文章包含环境搭建、工具使用、常见问题解决方案等实用内容,适合需要刷机救砖的用户参考。

weixin_42639246的博客 616

SRA数据下载的一个坑

SRA数据真坑啊!

xuzhougeng blog 3508

获取一个月的天数

var myDate = new Date(); var year = myDate.getFullYear(); var month = ("0" + (myDate.getMonth() + 1)).slice(-2); function getCountDays() { var curDate = new Date(); var curMonth = curDate.getMonth()...

sinat_38818576的博客 1344

逆向工程师视角:拆解DataDome滑块验证码的3层防护机制与绕过思路

本文从逆向工程师视角,深入剖析DataDome滑块验证码的三层核心防护机制。第一层通过动态加密参数实现会话绑定与抗重放;第二层采集TLS指纹、鼠标轨迹动力学等多维行为数据进行一致性验证;第三层则是基于机器学习的后端异步风险决策引擎。文章不仅拆解了其技术原理,更分享了模拟、钩取等超越单纯工具调用的底层分析与绕过思路。

f6g7h8i9j的博客 730

用golang写一段代码,把一个月按日期拆分成一个列表

package mainimport ( "fmt" "time" )func main() { start := time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC) end := time.Date(2020, 1, 31, 0, 0, 0, 0, time.UTC) var dates []time.Time ...

weixin_42575505的博客 307

SONiC (6) - SONiC 源码框架分析

https://github.com/sonic-net/sonic-utilitieshttps://github.com/sonic-net/sonic-snmpagenthttps://github.com/sonic-net/sonic-linux-kernelhttps://github.com/sonic-net/sonic-platform-commonhttps://github.com/sonic-net/sonic-platform-daemons以下是在 SONiC 中运行的容器列表:

qq_49477505的博客 1329

华为OD机试双机位C卷-FLASH坏块监测系统(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【FLASH坏块监测系统】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - FLASH坏块监测系统。

qq_45776114的博客 1928

go下面是用go打印本月的月历

package mainimport("fmt""time")func main(){    now := time.now()    yr,mo,_:=now.Date()    //d    d1 := time.Date(yr,mo,1,0,0,0,0,time.UTC)    d2 := time.Date(yr,mo+1,1,0,0,0,0,time.UTC)    d2 := d2....

boss2967的博客 1059

OpenClaw 报错 TypeError: Cannot read properties of undefined (reading ‘prototype‘):Node.js 版本不兼容

国产化环境中部署OpenClaw云边协同平台时,出现"TypeError: Cannot read properties of undefined (reading 'prototype')"报错。经分析发现根本原因是Node.js版本与依赖生态不兼容,新版本Node(如v21)移除了旧依赖使用的内部API。解决方案包括:1)使用nvm切换至兼容的Node 16/18 LTS版本;2)容器化部署固定Node版本;3)遵循官方推荐的引擎版本范围。该问题揭示现代工程中版本管理的重要性,

博客 2312

使用存储过程如何获得指定年份每月的天数

调用时传入参数年份,返回每月的天数表 create procedure dbo.prMonthlyDaysOfYear ( @year smallint ) as if ( @year < 1753 ) or ( @year > 9999 ) begin raiserror('年份错误!请输入1753至9999的年份…...

yhj198927的博客 1021

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

go语言:实现通过月份和年份,并返回其中的天数算法(附带源码)

go语言:实现通过月份和年份,并返回其中的天数算法(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 732

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Go语言计算指定年月天数的方法

package main import ( "fmt" "bufio" "os" "regexp" "strconv" ) func main() { year := input("year", "^[0-9]{1}[0-9]{3}$") month := input("month", "^(0{1}[0-9]{1}|1{1}[0-2]{1}...

OceanStar的博客 3148

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

超简单的通过年月得到当月天数,从简单的小例子来解析代码的优化

首先分析问题,通过年月得到当前月份的天数,按照生活中的惯性,就是分析年份,后分析月份,这里我要说不,虽然这样同样可以算出结果,速度上也与先判断月份相差毫微,虽然这个时间短的可以忽略不计,但是作为一个有情怀的程序员,对代码的要求就是要短小精悍,能省就省,我先列出两种分析方式的算法代码,当然这种写法是最笨重的,这里主要是为了突出问题,优化一步步来,我始终强调,先分析问题,只要会写代码的程序员写完立马就

u012296101的专栏 1252

Go语言实现月份天数计算的3种方法与性能对比

日期处理是软件开发中的基础需求,特别是在日历应用、报表系统等场景中。理解时间计算原理需要掌握闰年判断规则(能被4整除但不能被100整除,或能被400整除)和月份天数分布规律。Go语言的time包虽然功能强大,但获取月份天数需要特定技巧。本文通过数组查找、条件判断和time.Date三种实现方案,详细对比了不同方法的性能差异(数组查找最快,time包慢两个数量级),并提供了处理时区、输入验证等工程实践建议。这些日期处理技术在账单系统、数据分析等Go项目中具有广泛应用价值。

weixin_33919950的博客 409

go语言学习实例---生成指定年份和月份的日历

go语言编写生成指定年份和月份的日历

伪程序文艺猿 696

js中如何通过年月获取天数,如何使用Moment.js获取一个月内的天数列表

Using Moment.js I would like to get all days in a month of specific year in an array. For example:January-2014:["01-wed","02-thr","03-fri","04-sat"]any suggestions? I looked through Moment.js docs but...

weixin_28784019的博客 1731

开发日记之根据年份和月份来判断这个月有几日

今天改了一个bug,大概就是需要根据前端传过来的年份和月份来判断这个月有几日 例如:传入一个2020-08(GetTime=“2020-08”) func Day(GetTime string) string{ //string-->>int64,GetTime[5:7]截取字符串 Month,_ := strconv.ParseInt(GetTime[5:7],10,64) Year,_ := strconv.ParseInt(GetTime[0:4],10,64) if GetT

KO_NO_JOJO的博客 198

【LeetCode刷题日记】1185,2024年最新2024大厂Golang开发面试总结+解答

的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

2401_84263403的博客 604

excel统计连续工作天数_使用Excel计算事件发生前的天数

excel统计连续工作天数() Excel treats dates as integers. This means you can add and subtract them, which can be useful for telling you how many days there are until that next deadline or event of yours. In th...

culunxun2863的博客 2975

go语言time库

time包是Go语言标准库中的一个包,它提供了时间处理相关函数。time包中定义了一个名为Time的类型,表示一个日期和时间值。time.Now():获取当前时间。time.Parse(layout, value string):根据指定的格式解析时间字符串,并返回对应的Time类型。time.Location):根据指定的格式和时区解析时间字符串,并返回对应的Time类型。time.Time.Format(layout string):将时间格式化为指定的字符串格式。

jakelihua 500

go 进阶 三方库之 joda-time

目录一. joda-time 基础解释二. joda-time常用API简介三. 其它三方时间库 一. joda-time 基础解释 joda-time 是一个流行的 Java 日期和时间处理库,在 Golang 中有对应的实现 go-joda. 它提供了对日期、时间、时区、周期、持续时间、格式化和解析等多个时间操作的支持,设计得非常全面和庞大。它的优点如下: 支持多种日历系统,包括 ISO、Julian、Coptic 和 Ethiopic 等。 提供了丰富的日期和时间操作方法,并提供了更加灵

qq_29799655的博客 636

golang 实现三天打鱼两天晒网

golang 实现三天打鱼两天晒网 本人才学go语言没多久,今天遇到三天打渔两天晒网的题目,本来想从网上找找代码,但都是其它语言写的,杀死了几亿脑细胞之后自己写了一下,今天就分享一下代码,不足之处还希望大佬指点 //中国有句俗语叫“三天打鱼两天晒网”,如果从1990年1月1日起开始 //执行“三天打鱼两天晒网”,如何判断在以后的某一天中是“打鱼”还是“晒网”? func main() { var y,m,r,day int var run bool for { fmt.Println("请输

weixin_45810058的博客 488
上一篇: golang 使用defer、panic、recover的问题
下一篇: golang uint8、int8与byte的区别
pingd
博客等级 码龄15年 60粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值