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

慈溪做无痛同济&网站深圳推广公司哪家最好

慈溪做无痛同济&网站,深圳推广公司哪家最好,短视频推广的好处,手机网站导航菜单目录 一、前言 二、函数介绍 1.DayOfWeek 枚举定义 2.GetTimeUntilNextTarget 3.GetSpecificWeekdayTime 三、完整代码 四、总结 一、前言 当我们编写代码时,我们经常会遇到需要处理日期和时间的情况。为了更方便地处理这些需求,我们可以创建一个…

目录

一、前言

二、函数介绍

     1.DayOfWeek 枚举定义

     2.GetTimeUntilNextTarget 

     3.GetSpecificWeekdayTime 

三、完整代码

四、总结


一、前言

当我们编写代码时,我们经常会遇到需要处理日期和时间的情况。为了更方便地处理这些需求,我们可以创建一个工具类来封装一些常用的日期和时间操作函数,从而简化我们的开发过程。在这篇文章中,我将介绍一个名为 "Utils" 的工具类,它包含了一些方便实用的日期和时间处理函数。

二、函数介绍

      首先,让我们来看看这个工具类包含的几个主要函数:

     1.DayOfWeek 枚举定义

在这个工具类中,我们首先定义了一个名为 "DayOfWeek" 的枚举,用来表示一周中的每一天对应的数字。这样做是为了方便后续的星期几计算,通过枚举的方式可以更清晰地表达代码的意图。

DayOfWeek = {Sunday = 1,Monday = 2,Tuesday = 3,Wednesday = 4,Thursday = 5,Friday = 6,Saturday = 7
}

     2.GetTimeUntilNextTarget 

这个函数用于计算距离下一个目标时间点还有多少秒。它接受目标时间点的小时、分钟和秒作为参数,然后通过比较当前时间与目标时间的大小关系来计算出距离下一个目标时间点还有多少秒,最后返回该秒数。这个函数的逻辑简单清晰,使用起来非常方便。

-- 获取距离下一个目标时间还有多少时间 最后返回是秒
function Utils.GetTimeUntilNextTarge(targetHour, targetMinute, targetSecond)local currentTime = os.time()local targetDataTime = os.date("*t", currentTime)targetDataTime.hour = targetHourtargetDataTime.min = targetMinutetargetDataTime.sec = targetSecondif os.time(targetDataTime) <= currentTime thentargetDataTime = currentTime + (24 * 60 * 60)targetDataTime = os.date("*t", targetDataTime)targetDataTime.hour = targetHourtargetDataTime.min = targetMinutetargetDataTime.sec = targetSecondendreturn os.time(targetDataTime) - currentTime
end

     3.GetSpecificWeekdayTime 

这个函数用于获取当前周的某一天的特定时间点距离当前时间还有多少秒。它接受目标星期几、目标时间点的小时、分钟和秒作为参数,然后通过一系列的计算来得出距离下一个目标时间点还有多少秒,最后返回该秒数。这个函数的实现涉及到了对日期的加减和比较,通过这个函数可以方便地获取到指定时间点在本周内距离当前时间的时间差。

-- 获取当前周的某一天的特定时间点 最后返回是秒
function Utils.GetSpecificWeekdayTime(targetWeekday, targetHour, targetMinute, targetSecond)local currentDateTime = os.date("*t", os.time())local timeDiff = 0-- 计算当前日期和目标日期之间的天数差local dayDiff = targetWeekday - currentDateTime.wdayif dayDiff < 0 and currentDateTime.hour >= targetHour thentimeDiff = (dayDiff + 7) * 24 * 60 * 60end-- 计算目标日期的年、月、日local targetTimestamp = os.time(currentDateTime) + timeDifflocal targetDateTime = os.date("*t", targetTimestamp)-- 设置目标时间的小时、分钟和秒targetDateTime.hour = targetHourtargetDateTime.min = targetMinutetargetDateTime.sec = targetSecond-- 如果当前时间已经过了目标时间点,就将目标日期调整为下一周的相同星期几local currentTimestamp = os.time(currentDateTime)local targetTimestamp = os.time(targetDateTime)if currentTimestamp >= targetTimestamp thentargetTimestamp = targetTimestamp + 7 * 24 * 60 * 60targetDateTime = os.date("*t", targetTimestamp)targetDateTime.hour = targetHourtargetDateTime.min = targetMinutetargetDateTime.sec = targetSecondendreturn os.time(targetDateTime) - os.time()
end

三、完整代码

local Utils = {}
Utils.name = "Utils"
Utils.DayOfWeek = {Sunday = 1,Monday = 2,Tuesday = 3,Wednesday = 4,Thursday = 5,Friday = 6,Saturday = 7
}-- 获取距离下一个目标时间还有多少时间 最后返回是秒
function Utils.GetTimeUntilNextTarge(targetHour, targetMinute, targetSecond)local currentTime = os.time()local targetDataTime = os.date("*t", currentTime)targetDataTime.hour = targetHourtargetDataTime.min = targetMinutetargetDataTime.sec = targetSecondif os.time(targetDataTime) <= currentTime thentargetDataTime = currentTime + (24 * 60 * 60)targetDataTime = os.date("*t", targetDataTime)targetDataTime.hour = targetHourtargetDataTime.min = targetMinutetargetDataTime.sec = targetSecondendreturn os.time(targetDataTime) - currentTime
end-- 获取当前周的某一天的特定时间点 最后返回是秒
function Utils.GetSpecificWeekdayTime(targetWeekday, targetHour, targetMinute, targetSecond)local currentDateTime = os.date("*t", os.time())local timeDiff = 0-- 计算当前日期和目标日期之间的天数差local dayDiff = targetWeekday - currentDateTime.wdayif dayDiff < 0 and currentDateTime.hour >= targetHour thentimeDiff = (dayDiff + 7) * 24 * 60 * 60end-- 计算目标日期的年、月、日local targetTimestamp = os.time(currentDateTime) + timeDifflocal targetDateTime = os.date("*t", targetTimestamp)-- 设置目标时间的小时、分钟和秒targetDateTime.hour = targetHourtargetDateTime.min = targetMinutetargetDateTime.sec = targetSecond-- 如果当前时间已经过了目标时间点,就将目标日期调整为下一周的相同星期几local currentTimestamp = os.time(currentDateTime)local targetTimestamp = os.time(targetDateTime)if currentTimestamp >= targetTimestamp thentargetTimestamp = targetTimestamp + 7 * 24 * 60 * 60targetDateTime = os.date("*t", targetTimestamp)targetDateTime.hour = targetHourtargetDateTime.min = targetMinutetargetDateTime.sec = targetSecondendreturn os.time(targetDateTime) - os.time()
endreturn Utils

四、总结

通过这些函数的封装,我们可以更加轻松地处理日期和时间相关的逻辑,提高代码的可读性和可维护性,感谢大家的支持。

http://www.wangmingla.cn/news/77454.html

相关文章:

  • 网站按钮样式网站的优化
  • wordpress升级后编辑器没有电脑网络优化软件
  • 溧阳网站制作贵阳网络推广外包
  • 南通网站建设报价品牌整合营销案例
  • 网站建设三大部分网络公司网络推广服务
  • 哪里有做外贸网站的seo指导
  • ps做网站一般用多大字体网站流量指标有哪些
  • 如何的找网站建设公司网站怎么优化自己免费
  • 做电影网站解析搜索引擎网站推广如何优化
  • 浦东新区专业网站建设营销推广方法有哪些
  • 南昌中企动力做的网站怎么样全媒体运营师报考条件
  • 建站小二搜索引擎排名google
  • 做软件好还是做网站好营销策略
  • 建大型网站费用浑江区关键词seo排名优化
  • 推荐一个代做毕业设计的网站举三个成功的新媒体营销案例
  • b2c平台有哪些分类网站优化排名的方法
  • 杭州做网站博客seo知识是什么意思
  • 网站设计美工排版编辑新媒体运营岗位职责
  • php做购物网站详情页的代码谷歌外贸网站推广
  • 协会网站建设网站技术解决方案
  • 游戏平台网站开发七牛云
  • 企业网站的运营如何做白云区最新疫情
  • 网站兼职做计划赚小钱网站应该如何推广
  • 南康做网站教程seo推广排名网站
  • 自己做的网页怎么上传到网站谷歌引擎搜索
  • 电商网站后台报价广东深圳龙华区
  • 大良营销网站建设咨询济南seo优化公司助力网站腾飞
  • 宁波网站建设找哪家好太原网站建设谁家好
  • 网站下载app连接怎么做湘潭高新区最新新闻
  • 网站与网站之间做的好坏对比朝阳网站建设