传奇三端互通新开服网站百度非企推广开户

news/2025/9/25 18:58:52/文章来源:
传奇三端互通新开服网站,百度非企推广开户,旅游网站后台模板下载,建站广告这个算法来自LINUX的源码#xff0c;下面带有大神的解析#xff0c;自己在RTC实验中也使用了#xff0c;不用月份表#xff0c;润平年的处理#xff0c;几行就可得出结果#xff0c;以下是程序和大神的解析Linux源码中的mktime算法解析我们知道#xff0c;从CMOS中读出来…这个算法来自LINUX的源码下面带有大神的解析自己在RTC实验中也使用了不用月份表润平年的处理几行就可得出结果以下是程序和大神的解析Linux源码中的mktime算法解析我们知道从CMOS中读出来的系统时间并不是time_t类型而是类似于struct tm那样年月日时分秒是分开存储的。那么要把它转化为系统便于处理的time_t类型就需要算法进行转换。我们都知道我们的公历还是比较复杂的有大月小月有闰年非闰年处理起来会很麻烦。但是Linux的源代码仅仅用了短短的几行就完成了这个复杂的转换(Gauss算法)实在令人惊奇。话不多说先看源代码include/linux/time.hstatic inline unsigned long mktime (unsigned int year, unsigned int mon,unsigned int day, unsigned int hour,unsigned int min, unsigned int sec){if (0 (int) (mon - 2)){    /**//* 1..12 - 11,12,1..10 */mon 12;      /**//* Puts Feb last since it has leap day */year - 1;}return ((((unsigned long) (year/4 - year/100 year/400 367*mon/12 day) year*365 - 719499)*24 hour /**//* now have hours */)*60 min /**//* now have minutes */)*60 sec; /**//* finally seconds */}看上去令人眼花缭乱毫无头绪。下面就让我们对该算法作具体的分析。先不看前面的直接看return那句该式整体上具有这样的结构T ((X * 24 hour) * 60 min) * 60 sec这说明该算法是先算出从1970年1月1日开始的天数X再进而求出具体的时间值T的。因此我们重点看如何求天数X。也就是X year/4 - year/100 year/400 367*mon/12 day year*365 - 719499这一部分。首先可以将上式拆成Y year / 4 - year / 100 year / 400Z 367 * mon / 12W year * 365 dayX Y Z W - 719499Y很简单它计算了从公元元年到所求年份为止所有的闰年数。从W式看出该算法先假设所有年都是正常年(365天)再加上闰年额外的天数(式Y)。到现在为止都算简单关键是Z式和X式中的那个常数719499是怎么回事似乎莫名其妙。还有就是它们和return语句前面的那个if判断有什么关系呢首先要澄清一点常数719499并不是像很多人说的那样是0001年1月1日到1970年1月1日所经历的天数。不信你可以随手写个脚本将得到正确的数字719162天。显然719162和719499是有关系的。我们把注意力放在那个if语句上mon - 2;if (mon 0) ...{mon 12;year--;}很明显它是想把1月和2月当作上一年年底的最后两个月让3月作为一年的第一个月。这样一来我们可以尽量少的被闰年所影响。按照这个假设让我们先不管Z式是怎么来的看看0001年1月1日时Y Z W等于什么mon 1月变成上一年(公元前0001年)的11月year减一后变成了0因此Y 0Z 367 * 11 / 12 336W 1 0 * 365 1Y Z W 337。337这个数正好等于719499 - 719162换句话说它是对上述假设所做的补正于是这些式子就变成了Y year / 4 - year / 100 year / 400Z 367 * mon / 12V Z - 337W year * 365 dayX Y W V - 719162再来看式Z这个式子表面看不出任何名堂367这个数字显然很是奇怪。那让我们穷举一下mon看看这个式子算出的都是些什么值吧mon         Z1           302           613           914           1225           1526           1837           2148           2449           27510          30511          33612          367似乎看出了什么再让我们把相邻的两个mon的Z做一下减法看看mon         dZ1           302           313           304           315           306           317           318           309           3110          3011          3112          31闻出点味道了吧很象大小月的规则。让我们回想起那个if语句作了什么它把1月2月变成了11月和12月3月变成了1月还原一下看看mon     org-mon         dZ1       3               302       4               313       5               304       6               315       7               306       8               317       9               318       10              309       11              3110      12              3011      1               3112      2               31怎么本来应该是大月的3月成了30天那好我们想想这个原理假设今天是1月1日那你能说你今年已经过了31天了么显然不是1月还没过我们不能把它算进去。这里同然我们从4月看起如果今天是愚人节那么距离3月1日我们经过了31天。就像前面说的我们假设一年是从3月开始到次年的2月结束。按照这个规则整个式子里有问题的只有3月理论上这里应该是0但是这没关系我们把它减去就行了于是变成Z 367 * mon / 12 - 30V Z - 307回头看看W式year * 365但是按照上面的理论没过完的这一年不应该加进去所以这里把它减去再和V式合并V Z 58W (year - 1) * 365 day我们记得这个算法的一年是从3月开始的因此少算了公元元年的1月和2月的天数31 28 59天(公元元年是正常年)V Z 59 - 1那么最后的这个减1是什么还是上面那个原理今天还没过就不应该把它算进去综上整个算法就明朗了主要难于理解的是那个3月开始的假设以及367 * mon / 12会产生类似大小月的序列。最后把这些式子整理并罗列一下做为本文的结束Y (year - 1) * 365 year / 4 - year / 100 year / 400M 367 * mon / 12 - 30 59D day - 1X Y M D - 719162T ((X * 24 hour) * 60 min) * 60 sec标签12,秒数,经历,31,30,1970,mon,year,367来源 https://blog.csdn.net/wang93IT/article/details/79744711

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php网站开发系统wordpress 引用网页

近日,紫光云技术有限公司在天津举行主题为“产业城市 擎领未来”的IMPACT2019紫光云峰会,深度阐释打造产业数字引擎的理念和实践,并为unI X云创中心揭牌,发布紫光云芯片产业数字引擎。 天津市人民政府副秘书长杨明远为大会致辞会上…

爱站网关键字挖掘wordpress 小组

Java中new一个对象时,JVM到底做了什么? 在Java编程中,new关键字是我们创建对象的最常用方式。但你是否想过,当你写下new MyClass()时,Java虚拟机(JVM)到底在背后做了哪些工作?今天&…

电脑迁移技巧:适用于 Windows 10/11 的免费磁盘克隆优秀的工具

电脑迁移技巧:适用于 Windows 10/11 的免费磁盘克隆优秀的工具pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Co…

详细介绍:Windows安装PostgreSQL入门操作手册

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

主播网站建立商务网站管理的主要内容数据管理

最近在微调 ChatGLM3-6b 时,训练好模型之后,调用inference_hf.py函数验证模型的时候报了如下错误,下面是解决方案。 我在训练时使用的是ptuning_v2.yaml配置文件,训练运行代码如下: CUDA_VISIBLE_DEVICES1 python fi…

东莞市公租房申请网站-建设网微信积分商城

Apache Doris 在查询优化方面通过结合 RBO 和 CBO,实现了对简单和复杂查询的高效优化。RBO 负责处理常量折叠、子查询改写和谓词下推等基础优化操作,而 CBO 则在 Join Reorder 等复杂场景中发挥作用。这种结合策略使得 Apache Doris 能够在面对各种查询场景时,既能保证优化过…

Java学习日记9.18

9.18 数据类型 整数扩展 进制 二进制: ob 十进制: 没有 八进制: 0 十六进制: 0x int i = 10 int i1 = 010 int i2 = 0x10输出结果将会是 10 8 16浮点数拓展 float 定义的小数必须在后边加一个f或F (因为小数默认的…

在PVE中实现宿主机与虚拟机同网段通信的配置方案

在PVE中实现宿主机与虚拟机同网段通信的配置方案本文内容由笔者根据遇到的问题口述,并通过ai整理而成供,遇到同样问题的同学参考。问题背景 在配置PVE服务器的过程中发现,当网络环境使用VLAN时,如果PVE宿主机的管理…

一种CDN动态加速首次访问加速方法

本文分享自天翼云开发者社区《一种CDN动态加速首次访问加速方法》.作者:蒋辉 具体方案如下: 1. 对于全站加速,节点内部的探测采用的非请求触发式探测(已实现),在首次访问时,使用配置的顶层父方案作为回源节点回源…

CF1716题解

CF1716A 不难发现,只保留一个1即可,其余的怎么变都可以,所以变成k个后,直接取max在序列中有1的情况下必然可以构造出来点击查看代码 #include<bits/stdc++.h> using namespace std; const int N=55; int t,n…

使用vosk模型进行语音识别

模型分享: 通过网盘分享的文件:vosk-model-small-cn-0.22.zip链接: https://pan.baidu.com/s/1FEH1xwDucdC3cEZSAyDOwQ?pwd=k8p5 提取码: k8p5 通过网盘分享的文件:vosk-model-cn-0.22.zip链接: https://pan.baidu…

国外 网站设计中国住房和城乡建设部网站资质查询

文章目录 前言一、技术是推动社会发展的基本动力1.人为什么能成为万物之长呢&#xff1f;2.人为什么要发明工具&#xff0c;进行进化呢&#xff1f;3.人是如何发明工具的&#xff1f;4.为什么要有不同的岗位和行业&#xff1f; 二、计算机(操作系统)发展的基本脉络1.第一台计算…

网站做实名验证成都广告设计培训班

世界上只有一种英雄主义&#xff0c;就是看清生活的真相之后依然热爱生活。对于 Lombok 我相信大部分人都不陌生&#xff0c;但对于它的实现原理以及缺点却鲜为人知&#xff0c;而本文将会从 Lombok 的原理出发&#xff0c;手撸一个简易版的 Lombok&#xff0c;让你理解这个热门…

AI Agent如何重塑人力资源管理?易路iBuilder平台实战案例深度解析

来源|商学院9月刊 文|吕笑颜 ID | BMR2004 导读:本文深度报道了易路iBuilder作为国内首个HR垂直AI Agent操作系统,如何通过39个智能体全面重构人力资源管理价值链。文章基于对易路CEO王天扬的专访,系统阐述了iBui…

docker-compose + macvlan + Elasticsearch - 9.1.4 + Kibana - 9.1.4

操作过程创建工作目录mkdir -p /opt/porsCloud/24-elastic进入工作目录cd /opt/porsCloud/24-elastic创建必要的目录mkdir es_conf es_data es_logs es_plugins kibana_conf kibana_data赋予权限chown -R 1000:0 es_co…

WinForm 计时器 Timer 学习笔记

1. Timer 是干啥的? 就是个“自动闹钟”: 你设定每隔多少毫秒(比如 1000 毫秒 = 1 秒),它就自动执行一段代码。 常见用途:实时显示时间 倒计时 定时刷新数据 轮询状态2. 怎么用?三步搞定(WinForm 拖控件方式)…

RocketMQ入门:基本概念、安装、本地部署与集群部署 - 详解

RocketMQ入门:基本概念、安装、本地部署与集群部署 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

重庆制作网站公司简介梵克雅宝五花手链

React中的“端口&#xff08;Portals&#xff09;”是一种将子节点渲染到DOM****树以外的部分的技术。在React应用中&#xff0c;通常情况下组件的渲染是遵循DOM的层次结构&#xff0c;即子组件会渲染在父组件的DOM节点内部。然而&#xff0c;有些情况下&#xff0c;开发者可能…

【LeetCode】122. 买卖股票的最佳时机 II

122. 买卖股票的最佳时机 II 区间内,差值最大,注意并不是最低值和最大值差值就是最大,例如,3,7,1,3,4。差值最大是7-3 解法一若价格一直往下跌,不买入 假设第一天买入,若买入后价格往下跌,应该下一天买入 若…

VSCode 使用技巧笔记

VSCode 笔记备忘插件Git History (donjayamanne.githistory)可以按行查看 git 历史记录Git Graph (mhutchie.git-graph)Bookmarks (alefragnani.bookmarks)highlight (debugpig.highlight)高亮选中的词 小技巧选择包含…