1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
*Вопрос. Я импортирую данные из Excel и получаю 4-5-значные числа. Как мне преобразовать их в
*формат даты в SPSS?.

*Ответ. Вы получаете число дней, прошедших с 31 декабря 1899 года (т.е. 1 обозначает 01.01.1900)
	Если вы в Excel поменяете формат дат на числовой формат, то увидите те же 5-значные числа, что вы получаете в SPSS.
* rlevesque@videotron.ca.

*Чтобы конвертировать 5-значные числа в даты SPSS, попробуйте следующее:.
DATA LIST LIST /var1(F8.0) var2(A6).
BEGIN DATA
1 	"1"
36604 	"36604"
25000 	"25000"
END DATA.
LIST.

COMPUTE date1=date.dmy(1,1,1900)+ (var1-2)*60*60*24.
COMPUTE date2=date.dmy(1,1,1900)+ (NUMBER(var2,F8.0)-2)*60*60*24.
FORMATS date1 date2 (ADATE12).
LIST.

* Вы можете видеть, что датой, соответствующей значению 1, является не 01.01.1900, а
* 31.12.1899. Это происходит потому, что мы вынуждены предварительно вычитать из числовой
* переменной двойку, чтобы "поправить" Excel, который ошибочно считает 
* 1900-й год високосным. Таким образом, приведённый алгоритм будет "неправильно" считать даты
с 01.01.1990 по 01.03.1990. Зато потом всё будет верно! - А.Б.

*здесь var1 - это переменная, которая содержит 5-значные числа, которые вы получаете из Excel.

************************************************************************.

* если вам требуется, чтобы дата была в строковой переменной, делаете следующее:.
STRING z(A11).
COMPUTE z=STRING(date2,ADATE11).