Date: Thu, 30 Jul 2009 04:07:37 -0400
Reply-To: Richard Ristow <wrristow@mindspring.com>
Sender: "SPSSX(r) Discussion" <SPSSX-L@LISTSERV.UGA.EDU>
From: Richard Ristow <wrristow@mindspring.com>
Subject: Re: Time Formats
In-Reply-To: <997384.78995.qm@web110713.mail.gq1.yahoo.com>
Content-Type: text/html; charset="us-ascii"
<html>
<body>
At 03:38 PM 7/29/2009, Keval Khichadia wrote:<br><br>
<blockquote type=cite class=cite cite="">I have a variable start_time
that holds the start time of a class. The format is in for example,<br>
<br>
start_time<br>
<br>
1-Jan-1900 09:25:00<br>
1-Jan-1900 14:15:00<br>
<br>
I used the below syntax:<br>
<br>
Compute StartTime = XDATE.TIME(START_TIME).<br>
formats StartTime (TIME5).<br>
<br>
and the output gives<br>
<br>
9:25<br>
14:15<br>
<br>
Is there a way I can get it to read like<br>
<br>
9:25 A.M.<br>
2:15 P.M</blockquote><br>
As you've heard, there's no format under which an SPSS time value will
display that way. Here's some code from a while back, that converts a
date-time into a <i>string</i> with AM/PM. It was tested when I
posted it(*), but I'm not re-testing it now.<br><br>
<tt><font size=2>/* ------------ Test
data ------------ */<br>
NEW FILE.<br>
INPUT PROGRAM.<br>
.
NUMERIC
TIME_VAL (DATETIME22).<br>
. VARIABLE WIDTH TIME_VAL (22).<br>
. VARIABLE ALIGNMENT TIME_VAL (CENTER).<br><br>
. COMPUTE TIME_VAL = $TIME.<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(06,06,1944) +
TIME.HMS(10,34,56).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(02,14,1966) +
TIME.HMS(15,54,32).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(01,10,2001) +
TIME.HMS(13,23,45).<br>
. END CASE.<br><br>
. COMPUTE TIME_VAL = DATE.MDY(07,03,2002) +
TIME.HMS(23,30,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(00,00,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(00,30,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(01,00,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(01,30,00).<br>
. END CASE.<br><br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(11,30,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(12,00,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(12,30,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(13,00,00).<br>
. END CASE.<br>
. COMPUTE TIME_VAL = DATE.MDY(07,04,2002) +
TIME.HMS(13,30,00).<br>
. END CASE.<br>
END FILE.<br>
END INPUT PROGRAM.<br>
EXECUTE.<br><br>
/* ------------ Desired format ------------ */<br>
/* Target output variable
*/<br>
STRING CVT (A22).<br>
/* Scratch intermediate variables */<br>
STRING #DATE (A10).<br>
NUMERIC #TIME (TIME10)<br>
/#ATIME (TIME10).<br>
STRING #HMS (A08)<br>
/#AMPM (A02).<br><br>
COMPUTE #DATE = STRING(TIME_VAL,ADATE10).<br><br>
COMPUTE #TIME = XDATE.TIME(TIME_VAL).<br>
DO IF (#TIME < TIME.HMS(01)).<br>
. COMPUTE #ATIME = #TIME + TIME.HMS(12).<br>
. COMPUTE #HMS = STRING(#ATIME,TIME08).<br>
. COMPUTE #AMPM = 'AM'.<br>
ELSE IF (#TIME < TIME.HMS(12)).<br>
. COMPUTE #ATIME = #TIME.<br>
. COMPUTE #HMS = STRING(#ATIME,TIME08).<br>
. COMPUTE #AMPM = 'AM'.<br>
ELSE IF (#TIME < TIME.HMS(13)).<br>
. COMPUTE #ATIME = #TIME.<br>
. COMPUTE #HMS = STRING(#ATIME,TIME08).<br>
. COMPUTE #AMPM = 'PM'.<br>
ELSE.<br>
. COMPUTE #ATIME = #TIME - TIME.HMS(12).<br>
. COMPUTE #HMS = STRING(#ATIME,TIME08).<br>
. COMPUTE #AMPM = 'PM'.<br>
END IF.<br><br>
COMPUTE CVT = CONCAT(#DATE,' ',#HMS,' ',#AMPM).<br><br>
/* ------------
Display ------------ */<br>
* Scratch variables as permanent variables, for display .<br>
NUMERIC NUM_TM (TIME10)<br>
/NUM_ADJT(TIME10).<br>
STRING STR_DT (A10)<br>
/STR_HMS (A08)<br>
/AM
(A02).<br>
COMPUTE STR_DT = #DATE.<br>
COMPUTE NUM_TM = #TIME.<br>
COMPUTE NUM_ADJT = #ATIME.<br>
COMPUTE STR_HMS = #HMS.<br>
COMPUTE AM =
#AMPM.<br><br>
STRING X (A2).<br>
COMPUTE X = ' '.<br>
EXECUTE.<br>
LIST VARIABLES=TIME_VAL X CVT.<br><br>
List<br>
TIME_VAL X CVT<br><br>
31-OCT-2003 00:01:26 10/31/2003 12:01:26 AM<br>
06-JUN-1944 10:34:56 06/06/1944 10:34:56 AM<br>
14-FEB-1966 15:54:32 02/14/1966 3:54:32
PM<br>
10-JAN-2001 13:23:45 01/10/2001 1:23:45
PM<br>
03-JUL-2002 23:30:00 07/03/2002 11:30:00 PM<br>
04-JUL-2002 00:00:00 07/04/2002 12:00:00 AM<br>
04-JUL-2002 00:30:00 07/04/2002 12:30:00 AM<br>
04-JUL-2002 01:00:00 07/04/2002 1:00:00
AM<br>
04-JUL-2002 01:30:00 07/04/2002 1:30:00
AM<br>
04-JUL-2002 11:30:00 07/04/2002 11:30:00 AM<br>
04-JUL-2002 12:00:00 07/04/2002 12:00:00 PM<br>
04-JUL-2002 12:30:00 07/04/2002 12:30:00 PM<br>
04-JUL-2002 13:00:00 07/04/2002 1:00:00
PM<br>
04-JUL-2002 13:30:00 07/04/2002 1:30:00
PM<br><br>
Number of cases read: 14 Number of cases
listed: 14<br><br>
<br>
LIST VARIABLES=TIME_VAL X STR_DT NUM_TM NUM_ADJT STR_HMS AM.<br><br>
List<br>
TIME_VAL X STR_DT
NUM_TM NUM_ADJT STR_HMS AM<br><br>
31-OCT-2003 00:01:26
10/31/2003 0:01:26 12:01:26 12:01:26
AM<br>
06-JUN-1944 10:34:56 06/06/1944
10:34:56 10:34:56 10:34:56 AM<br>
14-FEB-1966 15:54:32 02/14/1966
15:54:32 3:54:32 3:54:32 PM<br>
10-JAN-2001 13:23:45 01/10/2001
13:23:45 1:23:45 1:23:45 PM<br>
03-JUL-2002 23:30:00 07/03/2002
23:30:00 11:30:00 11:30:00 PM<br>
04-JUL-2002 00:00:00
07/04/2002 0:00:00 12:00:00 12:00:00
AM<br>
04-JUL-2002 00:30:00
07/04/2002 0:30:00 12:30:00 12:30:00
AM<br>
04-JUL-2002 01:00:00
07/04/2002 1:00:00 1:00:00
1:00:00 AM<br>
04-JUL-2002 01:30:00
07/04/2002 1:30:00 1:30:00
1:30:00 AM<br>
04-JUL-2002 11:30:00 07/04/2002
11:30:00 11:30:00 11:30:00 AM<br>
04-JUL-2002 12:00:00 07/04/2002
12:00:00 12:00:00 12:00:00 PM<br>
04-JUL-2002 12:30:00 07/04/2002
12:30:00 12:30:00 12:30:00 PM<br>
04-JUL-2002 13:00:00 07/04/2002
13:00:00 1:00:00 1:00:00 PM<br>
04-JUL-2002 13:30:00 07/04/2002
13:30:00 1:30:00 1:30:00 PM<br><br>
Number of cases read: 14 Number of cases
listed: 14<br>
</font></tt>..................................<br>
*Posted:<br>
Date: Fri, 31 Oct 2003 00:05:42 -0500<br>
From: Richard Ristow
<wrristow@mindspring.com><br>
Subject: Re: $time AM/PM<br>
To: SPSSX-L@LISTSERV.UGA.EDU<br>
</body>
<br>
</html>
=====================
To manage your subscription to SPSSX-L, send a message to
LISTSERV@LISTSERV.UGA.EDU (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
|