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

lua 计算第几周

需求

计算当前赛季的开始和结束日期,2024年1月1日周一是第1周的开始,每两周是一个赛季。

lua代码

没有处理时区问题

local const = 24 * 60 * 60 --一整天的时间戳
local server_time = 1716595200--todo:修改服务器时间
local date = os.date("*t", server_time) -- 服务器当前时间对应的日期
local first_day_of_2024 = os.time({ year = 2024, month = 1, day = 1 })
-- os.date()返回的数据里周日才是一周的开始,即 wday = 1,而我需要的是周一才
-- 是一周的开始,所以做了处理
local week_day = date.wday - 1
if week_day <= 0 thenweek_day = 7
end
local total_time_stamps = server_time - first_day_of_2024
local days = math.ceil(total_time_stamps / const) -- 计算当前是第几天
-- 第几周,或者 math.ceil((days + (7 - week_day)) / 7),原理是凑完整的一周
local weeks = math.ceil(days / 7)
local diff_time = 0
if weeks % 2 == 0 thendiff_time = 7 * const
end
local start_time_stamps = os.time({ year = date.year, month = date.month, day = date.day }) - week_day * const + 1 * const - diff_time
local start_date = os.date("*t", start_time_stamps) -- 得到开始日期
local end_time_stamps = start_time_stamps + 2 * 7 * const - const
local end_date = os.date("*t", end_time_stamps) -- 得到结束日期

当前时间是2024.5.25,得到的赛季时间是5.20到6.2.
在这里插入图片描述

http://www.lryc.cn/news/354693.html

相关文章:

  • 负载均衡策略
  • 海外网红营销新趋势:“快闪式”营销如何迅速提升品牌曝光度
  • 速看!打造专属数字化能力模型的七大关键!
  • 青蛙跳台阶问题
  • linux日常运维2
  • flink cdc mysql整理与总结
  • 【三维重建】ePnP
  • C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
  • 8、python基础知识图谱
  • 智慧校园建设规划方案
  • 【深度学习实战—8】:基于MediaPipe的人脸检测
  • OSCP学习,布置你的Kali Linux
  • PWA离线优先策略:提升用户体验的关键步骤
  • 网页提示“非私密连接”是为什么?
  • [自动驾驶技术]-8 Tesla自动驾驶方案之硬件(AI Day 2022)
  • 人力资源管理信息化系统如何支持企业开展管理诊断?
  • Cohere继Command-R+之后发布大模型Aya-23,性能超越 Gemma、Mistral 等,支持中文
  • 身为UI设计老鸟,不学点3D,好像要被潮流抛弃啦,卷起来吧。
  • 线代-向量eg3.1 3.2 3.4
  • 【C语言】实现贪吃蛇--项目实践(超详细)
  • Elasticsearch 分析器的高级用法一(同义词,高亮搜索)
  • Python 开心消消乐
  • mysql - 索引基本知识梳理
  • Nginx SSL/TLS配置:搭建安全的HTTPS网站
  • echarts 折线图流光效果偏移或不显示
  • Redis数据类型(上篇)
  • VMware虚拟机安装Linux
  • slurm是什么,怎么用? For slurm和For Pytorch有什么区别和联系?
  • 类和对象【六】友元和内部类
  • 一点点 cv 经验 1:cv方向、模型评估、输入尺寸、目标检测器设计