日期和时间计算

最近在学习muduo网络库源码,小结一下日期和时间计算。

概念

GMT(UT)、UTC、AD、CE、BC等略。参考:http://www.hermetic.ch/cal_stud/jdn.htm

儒略日(Julian day number, 这里简称为JD)起始时间为GMT -4712-01-01(i.e.4713 B.C.),中午12时。此刻2015年11月8日18:00:00的儒略日是2457335.25,0.1表示2.4小时、144分钟或者8640秒,以此类推。由于儒略日数字位数太多,国际天文学联合会于1973年采用修订后的儒略日(MJD),其定义为 MJD = JD – 2400000.5。MJD相应的起点是GMT 1858-11-17,0时。计算机的UNIX time是从GMT 1970-01-01, 0时开始至今的秒数。因此,UNIX time = (JD – 2440587.5) × 86400。年月日和JD可以通过公式互相转化,即muduo中的muduo::detail::getJulianDayNumber、muduo::detail::getYearMonthDay函数。muduo中muduo::Date::kJulianDayOf1970_01_01 值为 2440588,也就是起点设为0时了。

时区、闰秒等概念参考man tzfile,http://stackoverflow.com/questions/6317388/timezone-database-file-format-question

相关函数和结构

struct tm

gmtime_r

gettimeofday,X86_64不需要进入内核,参考:http://blog.csdn.net/russell_tao/article/details/7185588

timgm

互相转换如图所示:(  参考:http://www.cnblogs.com/yaozhongxiao/archive/2013/04/14/3020353.html

时间: 2024-11-02 12:43:29

日期和时间计算的相关文章

日期和时间(10)

UNIX时间戳 PHP的日期和时间库 验证日期 格式化日期和时间 将时间戳转换用户友好的值 处理时间戳 日期函数 显示本地化的日期和时间 显示网页的最新修改日期 确定当前月份的天数 确定任意给定月份的天数 计算当前日期后X天的日期 DataTime构造函数简介 格式化日期 实例化后设置日期 实例化后设置时间 修改日期和时间 计算两个日期之差 原文地址:https://www.cnblogs.com/xiukang/p/8569894.html

C# 时间计算 今天、昨天、前天、明天 一个月的开始日期与结束日期

C# 时间计算 今天.昨天.前天.明天 class Program    {        static void Main(string[] args)        {            DateTime dt1=GetTodayZeroTime(DateTime.Now);            Console.WriteLine("今天零点:{0}",dt1.ToString() );            DateTime dt2 = GetYestodayZeroTim

按年、季度、月分组&&计算日期和时间的函数

Mysql 按年.季度.月分组 按月度分组: select DATE_FORMAT(i.created_at, '%Y-%m月')...................GROUP BY DATE_FORMAT(i.created_at, '%Y-%m')  按季度分组: select CONCAT(YEAR(i.created_at),'_',QUARTER(i.created_at),'Q')....................GROUP BY CONCAT(YEAR(i.created_

(原创)lua日期、时间、时间戳的计算和转换

----------------------------------------------日期与时间 print("当前时间戳:") local nowTime = os.time() print(nowTime) print("") print("转换成日期:") --时间戳 转 日期 local nowData = os.date("%Y%m%d%H%M%S",nowTime) print(nowData) --可以单独

php日期和时间基础知识--Unix时间戳

<?php /*1.取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和. PHP提供了内置函数 time() 来取得服务器当前时间的时间戳.那么获取当前的UNIX时间戳就很简单了. */ $timer = time(); echo $timer; /*2.取得当前的日期 php内置了date()函数,来取得当前的日期. 函数说明:date(时间戳的格式, 规

(十六)PL/SQL日期及时间

PL/SQL提供两个日期和时间相关的数据类型: 1.日期时间(Datetime)数据类型 DATE TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE 2.间隔数据类型 INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND   一.日期时间字段值和间隔数据类型这两个日期时间和间隔数据类型包括字段.这些字段的值确定的数据类型的值.下表列出了时间和间隔的字段及其可能的值. 字段名称

前端学PHP之日期与时间

前面的话 在Web程序开发时,时间发挥着重要的作用,不仅在数据存储和显示时需要日期和时间的参与,好多功能模块的开发,时间通常都是至关重要的.网页静态化需要判断缓存时间.页面访问消耗的时间需要计算.根据不同的时间段提供不同的业务等都离不开时间.PHP为我们提供了强大的日期和时间处理功能,通过内置的时间和日期函数库,不仅能够得到PHP程序在运行时所在服务器中的日期和时间,还可以对它们进行任意检查和格式化,以及在不同格式之间进行转换等.本文将详细介绍PHP中的日期和时间 [注意]关于javascrip

使用moment.js轻松管理日期和时间

大家在前端Javascript开发中会遇到处理日期时间的问题,经常会拿来一大堆处理函数才能完成一个简单的日期时间显示效果.今天我给大家介绍一个轻量级的Javascript日期处理类库:moment.js,使用它可以轻松解决前端开发中遇到的种种日期时间问题. 查看演示 下载源码 moment.js不依赖任何第三方库,支持字符串.Date.时间戳以及数组等格式,可以像PHP的date()函数一样,格式化日期时间,计算相对时间,获取特定时间后的日期时间等等,本文有如下举例. 格式化日期 当前时间: m

PHP的日期和时间

一.UNIX时间戳 以32位的整数表示格林威治标准时间.UNIX时间戳是从1970年1月1日零点开始起到当前时间所经历的秒数. 1.将日期和时间转变成UNIX时间戳 (1)mktime()函数 <?pph echo date("Y-m-d-h-m-s",mktime(12,10,56,12,67,2016))."\n"; ?> (2)strtotime()函数 <?php echo date("Y-m-d",strtotime(