当前位置: 首页 > news >正文

golang 生成一年的周数

// GetWeekTimeCycleForGBT74082005 获取星期周期 中华人民共和国国家标准 GB/T 7408-2005
// 参数 year 年份 GB/T 7408-2005
func GetWeekTimeCycleForGBT74082005(year int) (*[]TimeCycle, error) {var yearstart time.Time //当年最开始一天var yearend time.Time   //当年最后一天var yearstartweek int   //当年第一年周几var yearendweek int     //当年最后一天周几var start time.Time     //周期开始时间var end time.Time       //周期结束时间var no int              //yyyy0001var name string         //名称 xxxx年xxxx周var week int            //第几周var spanyear = true     //默认能跨年var timeCycles []TimeCyclevar loc, err = time.LoadLocation("Local")if err != nil {return nil, err}yearstart, err = time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%d", year)+"-01-01 00:00:00", loc)if err != nil {return nil, err}yearend, err = time.ParseInLocation("2006-01-02 15:04:05", yearstart.AddDate(1, 0, -1).Format("2006-01-02")+" 23:59:59", loc) //加一年 减一天得到if err != nil {return nil, err}// Sunday Weekday = iota 星期天 是0yearstartweek = int(yearstart.Weekday()) //1月1号是星期几yearendweek = int(yearend.Weekday())     //12月31号是星期几if yearendweek > 0 && yearendweek <= 3 { //如果今年的最后一天是周1到周3 说明是要被包含的 此时不应该跨年spanyear = false}var addDay = (8 - yearstartweek) % 7 //如果今天是 星期一  则无需处理 如果是0则+1 1则+0 2则+6 3则+5 4则+4 5则+3//第一周if yearstartweek == 0 || yearstartweek == 5 || yearstartweek == 6 { //当1月1号是周五 周六 或者 周日 则这几天(0-2)是属于上一年的周期yearstart = yearstart.AddDate(0, 0, addDay)} else { //否则上一年后几天(0-3)是属于这一年的yearstart = yearstart.AddDate(0, 0, -1*(yearstartweek-1))}for {start = yearstart.AddDate(0, 0, week*7)end, err = time.ParseInLocation("2006-01-02 15:04:05", start.AddDate(0, 0, 6).Format("2006-01-02")+" 23:59:59", loc) //加一周if err != nil {return nil, err}week++no, _ = strconv.Atoi(fmt.Sprintf("%d%04d", year, week))name = fmt.Sprintf("%d年%d周", year, week)if start.Year() <= year && //其实年必须在当前年(end.Year() == year || //在当前年(end.Year() >= year && spanyear)) { //不在当前年 看是否可以跨年timeCycles = append(timeCycles, TimeCycle{No:        no,Name:      name,StartTime: start,EndTime:   end,})} else {break}}return &timeCycles, nil
}

相关文章:

golang 生成一年的周数

// GetWeekTimeCycleForGBT74082005 获取星期周期 中华人民共和国国家标准 GB/T 7408-2005 // 参数 year 年份 GB/T 7408-2005 func GetWeekTimeCycleForGBT74082005(year int) (*[]TimeCycle, error) {var yearstart time.Time //当年最开始一天var yearend time.Time //当年…...

植物大战僵尸-C语言搭建童年游戏(easyx)

游戏索引 游戏名称&#xff1a;植物大战僵尸 游戏介绍&#xff1a; 本游戏是在B站博主<程序员Rock>的视频指导下完成 想学的更详细的小伙伴可以移步到<程序员Rock>视频 语言项目&#xff1a;完整版植物大战僵尸&#xff01;可能是B站最好的植物大战僵尸教程了&…...

c++学习:容器list实战(获取目录返回容器list)

新建一个dir.h,声明dir类 #ifndef DIR_H #define DIR_H#include <sys/types.h>#include <dirent.h> #include <stdio.h> #include <string.h>#include <iostream> #include <list>class Dir { public:Dir();static std::list<std::str…...

【Linux】Linux系统编程——Linux目录结构

Linux的文件系统呈现为一种树状结构&#xff0c;以根目录/为最顶层&#xff0c;其下分布着各种不同的子目录&#xff0c;每个目录都有其特定的用途和功能。下面是Linux目录结构的详细介绍&#xff1a; 1. 根目录 / 根目录是整个文件系统的基础。所有的目录和文件都从这里开始…...

卫星时钟服务器、NTP时钟服务器、GPS北斗网络时钟系统

卫星时钟服务器、NTP时钟服务器、GPS北斗网络时钟系统 卫星时钟服务器、NTP时钟服务器、GPS北斗网络时钟系统 卫星时钟服务器、NTP时钟服务器、GPS北斗网络时钟系统 应用背景 根据人民银行第2012年第8期《金融业信息安全风险提示》建议大力推广采用能够接收GPS和北斗时钟源信号…...

【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…...

全网第一篇教你怎么总结多线程知识

于「全景图」&#xff0c;我之前也有一直在构建&#xff0c;可是因为知识储备不够&#xff0c;确实很难构建出来。稍微了解过并发领域知识的人都知道&#xff0c;里面的知识点、概念多而散&#xff1a;线程安全、锁、同步、异步、阻塞、非阻塞、死锁、队列(为什么并发要跟队列扯…...

Mondo备份linux操作系统为iso镜像 —— 筑梦之路

简介 Mondo Rescue&#xff08;以下简称Mondo&#xff09;可以说是Linux 下的Ghost&#xff0c;它可以将你的系统像照相一样备份至磁带&#xff0c;CD-R&#xff0c;CD-RW&#xff0c;NFS或硬盘分区。Mondo广泛支援LVM&#xff0c;RAID&#xff0c;ext2, ext3, JFS, XFS,Reise…...

《微信小程序开发从入门到实战》学习七十八

6.10 录音API 6.10.2 音频输入源PI 使用wx.getAvaliableAudioSources可获取当前支持的音频输入源&#xff0c;自基础库2.1.0开始支持。示例代码如下&#xff1a; wx.getAvaliableAudioSources({ success(res){ console.log(res.audioSources) } }) res.audioSources是一个数…...

React 入门 - 05(响应式与事件绑定)

本章内容 目录 一、响应式设计思想二、React 中的事件绑定 继上一节我们简单实现一个 TodoList来更加了解编写组件的一些细节。本节继续这个案例功能的完成。 一、响应式设计思想 1、在原生的 JS中&#xff0c;如果要实现点击”提交“按钮就将输入框的内容添加至页面列表中&…...

【APACHE】的认识和基础配置参数

#主页传送:江南的江 #每日鸡汤&#xff1a;人生没有如果和假设&#xff0c;只有后果和结果。生活有进有退&#xff0c;输什么也不能输心情。生活简单就是迷人的&#xff0c;学会简单其实就是不简单。要学会平静地接受现实&#xff0c;学会对自己说声顺其自然&#xff0c;学会坦…...

英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述及应用实例(CMU,CCM,TBU,MON)

英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述及应用实例(CMU,CCM,TBU,MON) 1 时钟管理单元(CMU)2 集群配置模块(CCM)1.1 应用举例1.2 扩展应用AUX_IN3 时基单元(TBU)4 监控单元(MON)5 总结由前文的各篇内容,开发者已经知道如何使用GTM的大部分功能,在这些功能中…...

STL之list

目录 list定义和结构 list容器模板接受两个参数&#xff1a; list容器的特点 双向性 动态大小 不连续存储 实例 代码输出 需要注意的点 list常用函数 代码示例 list定义和结构 list的使用频率不高&#xff0c;在做题时极少遇到需要使用list的情景。 list是一种双向…...

【C++】C++11中的常见语法(上)

C11 一、C11简介二、统一的列表初始化1.&#xff5b;&#xff5d;初始化2. std::initializer_list 三、声明1. auto2. decltype3. nullptr 四、右值引用和移动语义1. 左值引用和右值引用2. 左值引用与右值引用比较3. 右值引用使用场景和意义4. 右值引用引用左值及其一些更深入的…...

Unity 踩坑记录 AnyState 切换动画执行两次

AnySate 切换动画 Can Transition To Self 将这个勾选去掉&#xff01;&#xff01;&#xff01;...

使用脚本把springboot程序部署到k8s上

一般我们部署写4个文件就行了 首先分别写 Dockerfile1package.sh2build.shdocker_push.sh Dockerfile # 基于jdk1.8 FROM openjdk:8-jdk-alpine RUN echo "Asia/Shanghai" > /etc/timezone RUN mkdir /app WORKDIR /appCOPY ./monitor-flink-1.0.jar /appEXPO…...

使用valgrind 分析缓存命中

使用valgrind 分析缓存命中 char transpose_submit_desc[] "Transpose submission"; void transpose_submit(int M, int N, int A[N][M], int B[M][N]) { int i,j,tmp;int bsize 8;unsigned long long addrA;unsigned long long addrB;unsigned long long setin…...

leetcode-二进制求和

67. 二进制求和 class Solution:def addBinary(self, a: str, b: str) -> str:result carry 0for i in range(max(len(a), len(b))):a_bit a[-(i1)] if i < len(a) else 0b_bit b[-(i1)] if i < len(b) else 0sum_bit int(a_bit) int(b_bit) carryresult str…...

数据采集卡:16通道16位250KHz AD,支持单点采集,程控增益

概述 USB-XM1603是一款性价比极高的多功能通用A/D板&#xff0c;经过精心设计&#xff0c;采用USB2.0总线支持热插拔&#xff0c;即插即用&#xff0c;无需地址跳线。适合测量变送器输出、直流电压等场合的测量应用。USB-XM1603具有16路单端16位程控增益模拟输入、4路16位模拟…...

物联网通讯协议NB-lot和LoRa差异分析

像把大象装冰箱一样&#xff0c;物联网&#xff0c;万物互联也是要分步骤的。 一、感知层(信息获取层)&#xff0c;即利用各种传感器等设备随时随地获取物体的信息; 二、网络层(信息传输层)&#xff0c;通过各种电信网络与互联网的融合&#xff0c;将物体的信息实时准确地传递…...

DOMPurify实战:如何在Node.js后端安全处理用户HTML输入(附最新jsdom配置)

DOMPurify实战&#xff1a;如何在Node.js后端安全处理用户HTML输入&#xff08;附最新jsdom配置&#xff09; 当用户提交的HTML内容直接进入数据库时&#xff0c;就像给黑客开了扇后门。去年某知名博客平台因未过滤富文本评论&#xff0c;导致攻击者通过精心构造的<img srcx…...

智能信道建模实战指南:从技术选型到落地实施的决策框架

智能信道建模实战指南&#xff1a;从技术选型到落地实施的决策框架 【免费下载链接】DeepMIMO-matlab DeepMIMO dataset and codes for mmWave and massive MIMO applications 项目地址: https://gitcode.com/gh_mirrors/de/DeepMIMO-matlab 在5G向6G演进的过程中&#…...

OpenClaw技能开发入门:为Qwen3-14b_int4_awq扩展自定义功能

OpenClaw技能开发入门&#xff1a;为Qwen3-14b_int4_awq扩展自定义功能 1. 为什么需要自定义技能&#xff1f; 去年冬天&#xff0c;我花了整整两周时间手动整理公司项目的技术文档。每天重复着复制、粘贴、格式调整的机械操作&#xff0c;直到偶然发现OpenClaw这个开源自动化…...

C语言宏定义:嵌入式开发中的高效利器与避坑指南

1. C语言宏定义的基础与陷阱在嵌入式开发中&#xff0c;宏定义是C语言最强大的特性之一&#xff0c;但也是最容易踩坑的特性。让我们从一个简单的需求开始&#xff1a;如何用宏实现两个数的比较并返回较小值&#xff1f;初学者最常见的写法是这样的&#xff1a;#define MIN(a,b…...

基于YOLOv8深度学习的蘑菇毒性检测系统(YOLOv8+YOLO数据集+UI界面+Python项目源码+模型)

一、项目介绍 摘要 随着人们对于野生菌菇膳食兴趣的增加以及户外采摘活动的普及&#xff0c;误食有毒蘑菇的事件频发&#xff0c;对公众健康构成了严重威胁。传统的蘑菇种类鉴别高度依赖专家的形态学经验&#xff0c;普通爱好者难以准确掌握&#xff0c;且现有识别应用在应对…...

千问3.5-2B开源可部署实践:本地GPU环境一键启用,无云服务依赖

千问3.5-2B开源可部署实践&#xff1a;本地GPU环境一键启用&#xff0c;无云服务依赖 1. 模型介绍与核心能力 千问3.5-2B是Qwen系列中的小型视觉语言模型&#xff0c;专为图片理解与文本生成任务设计。这个开源模型最大的特点是能够同时处理视觉和语言信息&#xff0c;实现真…...

Win10下MobSF安装避坑指南:从Python版本冲突到环境变量配置全解析

Win10下MobSF安装避坑指南&#xff1a;从Python版本冲突到环境变量配置全解析 移动应用安全测试已成为开发流程中不可或缺的一环。作为一款强大的开源工具&#xff0c;MobSF&#xff08;Mobile Security Framework&#xff09;因其全面的自动化分析能力备受开发者青睐。然而在…...

Qwen3.5-9B-AWQ-4bit电路仿真辅助:Multisim设计文档自动生成与解析

Qwen3.5-9B-AWQ-4bit电路仿真辅助&#xff1a;Multisim设计文档自动生成与解析 1. 电子工程师的设计痛点 每个电子工程师都经历过这样的场景&#xff1a;深夜加班赶项目&#xff0c;面对复杂的Multisim电路图&#xff0c;需要手动整理几十页的设计文档。元件清单、信号流分析…...

OpenClaw技能组合:Qwen2.5-VL-7B串联多个自动化任务流

OpenClaw技能组合&#xff1a;Qwen2.5-VL-7B串联多个自动化任务流 1. 为什么需要任务流串联 上周我需要完成一个市场竞品分析的周报&#xff0c;整个过程让我意识到手动操作的效率瓶颈。首先要在电商平台截图商品页面&#xff0c;然后用OCR工具提取价格信息&#xff0c;接着把…...

结合鸿蒙系统特性:在HarmonyOS应用中嵌入Pixel Couplet Gen生成能力

结合鸿蒙系统特性&#xff1a;在HarmonyOS应用中嵌入Pixel Couplet Gen生成能力 1. 引言&#xff1a;当传统艺术遇见分布式技术 春节贴春联是中国人延续千年的文化传统&#xff0c;而如今&#xff0c;借助AI技术和鸿蒙系统的分布式能力&#xff0c;我们可以让这一传统焕发新的…...