楼主: 小沐君
3019 6

[问答] 求助:日期时间怎么换算成秒啊? [推广有奖]

  • 6关注
  • 3粉丝

博士生

5%

还不是VIP/贵宾

-

威望
0
论坛币
497 个
通用积分
30.1465
学术水平
8 点
热心指数
18 点
信用等级
8 点
经验
44321 点
帖子
191
精华
0
在线时间
192 小时
注册时间
2016-1-10
最后登录
2023-11-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

例3.14  将日期时间值换算为以秒计数的计算方法。

data;

mdy=mdy(08,18,2001);

put mdy=;

format mdy yymmdd10.;


hms=hms (21,50,51);

put hms=;

x=21* 60* 60 + 50* 60 + 51; put x=;


dhms=dhms(date(),21,50,51);

put dhms=;


dhms=dhms(15263,21,50,51);

put dhms=;

y=15263 * 24 * 3600 + x; put y=;

run;


结果显示:

mdy=2001-08-18

hms=78651

x=78651

dhms=1347832251

dhrns=1318801851

y=1318801851



(1)hms 和第一个dhms 还有第二个dhms是怎么得出数值的啊?

(2)求日期和时间的总秒数,时间转成秒好理解,关于日期那部分,上面标红的那个15263是怎么来的呀?




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:format FORMA form Data 结果显示 时间 日期 转换

沙发
superguy333 发表于 2018-8-30 20:37:17 |只看作者 |坛友微信交流群
  1. 先回答第二个问题:标红的那个15263。
  2. data;
  3. mdy=15263;
  4. put mdy=;
  5. format mdy yymmdd10.;
  6. RUN;
  7. 运行结果MDY=2001-10-15,也就是说标红的那个15263对应这一天,而前面有date(),即是作者编写程序实例的那一天为2001-10-15.
复制代码

使用道具

藤椅
superguy333 发表于 2018-8-30 20:43:26 |只看作者 |坛友微信交流群
第一个问题:
hms (21,50,51); 对应的时间是21时:50分:51秒。        00:00:00 秒的时间戳是第0秒,00:00:01 秒的时间戳是第1秒,以此类推,21:50:51对应的秒时间戳是第x=21* 60* 60 + 50* 60 + 51=78651(秒),等效于用函数直接读秒hms(21,50,51)=78651(s)

dhms 实际上对应的时间是 2001-10-15 21时:50分:51秒 ,对应的秒的时间戳可以用函数直接读出来dhms(15263,21,50,51)=15263*24(小时)*3600(秒)+x(x也就是21* 60* 60 + 50* 60 + 51)。

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
小沐君 + 1 + 1 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

板凳
小沐君 发表于 2018-8-31 10:13:01 |只看作者 |坛友微信交流群
superguy333 发表于 2018-8-30 20:37
谢啦,这么看 书里第一段和第三段code并没啥用啊

使用道具

报纸
小沐君 发表于 2018-8-31 10:17:57 |只看作者 |坛友微信交流群
superguy333 发表于 2018-8-30 20:43
第一个问题:
hms (21,50,51); 对应的时间是21时:50分:51秒。        00:00:00 秒的时间戳是第0秒,00: ...
明白了算秒数为什么用15263乘以24小时和3600秒,是因为15263就是指那一天与1960.1.1所差的天数,

那相似的,dhms(15263,21,50,51) 也是与1960.1.1零点零分之间的差吧?这个差是用秒吗?也就是差了1318801851秒?

使用道具

地板
小沐君 发表于 2018-8-31 10:18:34 |只看作者 |坛友微信交流群
superguy333 发表于 2018-8-30 20:43
第一个问题:
hms (21,50,51); 对应的时间是21时:50分:51秒。        00:00:00 秒的时间戳是第0秒,00: ...
明白了算秒数为什么用15263乘以24小时和3600秒,是因为15263就是指那一天与1960.1.1所差的天数,

那相似的,dhms(15263,21,50,51) 也是与1960.1.1零点零分之间的差吧?这个差是用秒吗?也就是差了1318801851秒?

使用道具

7
superguy333 发表于 2018-8-31 10:35:21 来自手机 |只看作者 |坛友微信交流群
作者想验证一下,函数是否预计算有差异。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 13:35