计算过去的天数

时间:2018-12-03 22:37:48

标签: stata

我有一个这样的变量date

enter image description here

我想计算自Jan 1 of 1960以来已经过了多少天。

但是,这很乏味。同样在几年中,二月还有28天。

我一直在尝试的工作基本上是查找每个日历,计算每年有多少天,将jan之类的字符串识别为月变量1,依此类推。

是否有任何简便有效的方法?

1 个答案:

答案 0 :(得分:2)

您需要使用daily()date()函数:

display date("1/1/2012", "DMY") - date("1/1/1960", "DMY")
18993

更一般地说,如果您有一个带日期的字符串变量:

clear

input str10 date1
"01/01/2012"
"01/01/2011"
"01/01/2014"
"19/12/2014"
end

generate date2 = date(date, "DMY") - date("1/1/1960", "DMY")

list

     +--------------------+
     |      date1   date2 |
     |--------------------|
  1. | 01/01/2012   18993 |
  2. | 01/01/2011   18628 |
  3. | 01/01/2014   19724 |
  4. | 19/12/2014   20076 |
     +--------------------+

如果包含日期的变量是数字:

clear

input date1
18993
18628
19724
20076
end

format %tdDD/NN/CCYY date1

generate date2 = date1 - date("1/1/1960", "DMY")