文档章节

System.DateUtils This of that functions部分函数示例及说明

张乐1024
 张乐1024
发布于 2015/09/16 18:23
字数 650
阅读 30
收藏 0

该篇文章主要是对DelphiXE8的System.DateUtils单元中This of that functions部分的函数进行调用示例及说明,如有不对之处还望大家可以提出,本人予以改正!

其实之前对于DayOfTheWeek函数中的计算公式,为何要先对日期参数-1,然后再取模,最后对结果+1一直都没有理解,源码中的解释也不过是我通过测试得到的一个可能的结论而已。后来我在找参考资料的过程中发现了一段话,对我启发很大。

差不多所有星期算法的基础皆可归纳如下:

  1. 从一个已知的日子作为起始日,一般采用世纪的第一天,通过同余7计算共过去了多少天。如将一周日子由0至6计算,结果将为一余数,如使用1至7计算,则7将代替0。

  2. 查表或使用已知规则计算上面的起始日,即该世纪开始的星期数。

  3. 查表或使用已知规则计算该年份开始的星期数。

  4. 计算该月份开始的星期数。

  5. 从该月份开始的计算该日的星期数。

简单来说,使用同余7表示在计算中可剔除7的倍数,如此可把7当作0、8当作1、9当作2、18当作4,如此类推。如果把星期日当作第0日,7日后(第7日)亦是星期日,而第18日则会与第4日相同,为星期日后的4天,即星期四。一些算法把所有加数先行计算,然后把7的倍数剔除,而其他算法则在每一步皆剔除7的倍数。两种做法皆可取,第一种做法较适用于计算机及电脑算法中,其他则较适用于心算。这些计算在熟习后,可在脑内计算出来。

关于星期计算的参考资料-维基百科

看到以上的解释,我想其实我们调用该函数的时候也可以不先-1,最后再+1,只不过这样得到的结果0代表周日,其他无变化。这样的话不符合我们的日常习惯,大部分国家还是习惯用1-7来代表一周,而非0-6来代表一周的。


具体内容请大家移步至源码示例

© 著作权归作者所有

张乐1024
粉丝 30
博文 17
码字总数 11121
作品 1
昌平
程序员
私信 提问
System.DateUtils Range checking functions部分函数示例及说明

该篇文章主要是对DelphiXE8的System.DateUtils单元中Range checking functions部分的函数进行调用示例及说明,如有不对之处还望大家可以提出,本人予以改正! 本部分的函数都需要传入三个参数...

张乐1024
2015/09/18
33
0
System.DateUtils Range checking functions部分函数示例及说明

该篇文章主要是对DelphiXE8的System.DateUtils单元中Range query functions部分的函数进行调用示例及说明,如有不对之处还望大家可以提出,本人予以改正! 本部分的函数都需要传入两个参数并...

张乐1024
2015/09/19
29
0
Delphi源码分析之System.DateUtils Start/End functions

该部分的函数都是根据制定参数返回其对应的开始时间和结束时间,根据不同参数以及不同的返回需求,在预定义函数中拆分参数,并重新组装,返回一个新的合法值。 下面是Start/End functions部分...

张乐1024
2015/08/24
55
0
System.DateUtils Pick-a-field functions部分函数示例及说明

这个部分我们从定义上就可以理解它的作用,就是摘取某一区域,或者说叫选择某一段的值. 该部分分为两部分,提取日期部分的某一段,或者提取时间部分的某一段.日期部分本质上调用的是DecodeDateF...

张乐1024
2015/08/19
28
0
c++ 知识点 std::function 使用

版权声明:www.gudianxiaoshuo.com (古典小说网) 今日头条号: 古典古韵古典小说、讨厌编程 https://blog.csdn.net/shuilan0066/article/details/82788954 这是c++11新添加的,头文件#incl...

shuilan0066
2018/09/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cpu load过高问题排查

load average的概念 top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程...

mskk
今天
6
0
用spring boot 实现websocket

import java.io.IOException;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import java......

jingshishengxu
今天
4
0
shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向,管道符和作业控制

shell介绍 可以使用 yum list |grep zsh 或者 yum list |grep ksh 这样可以搜索 zsh 和 ksh ,有需要的话可以安装 总之,默认使用的就是 .bash shell 命令历史 输入过的命令会被保存在一个文...

doomcat
今天
7
0
1995年的资深工程师,和你谈谈如何进阶

1995年的资深工程师,和你谈谈如何进阶 自我介绍 网络ID:杭城小刘,城市:顾名思义,人在杭州。1995年出生,本科毕业,现在是一名 iOS 资深工程师,年薪 35w。兴趣爱好广泛:乒乓球、美食、...

杭城小刘
今天
10
0
Kafka 面试题

1.Kafka中的ISR、AR代表什么? ISR:与leader保持同步的follower集合 AR:分区的所有副本 2.Kafka中的HW、LEO分别代表什么? LEO:每个副本的最后条消息的offset HW:一个分区中所有副本最小...

djm猿
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部