Time.st
author claus
Wed, 08 Feb 1995 04:11:17 +0100
changeset 241 6f30be88e314
parent 239 472f810ecccf
child 275 a76029ddaa98
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
159
514c749165c3 *** empty log message ***
claus
parents: 95
diff changeset
     3
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    13
'From Smalltalk/X, Version:2.10.4 on 8-feb-1995 at 12:46:41 pm'!
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    14
32
ee1a621c696c *** empty log message ***
claus
parents: 13
diff changeset
    15
AbsoluteTime subclass:#Time
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    16
	 instanceVariableNames:'timeEncoding'
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    17
	 classVariableNames:''
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    18
	 poolDictionaries:''
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    19
	 category:'Magnitude-General'
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    21
a27a279701f8 Initial revision
claus
parents:
diff changeset
    22
Time comment:'
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
    23
COPYRIGHT (c) 1989 by Claus Gittinger
159
514c749165c3 *** empty log message ***
claus
parents: 95
diff changeset
    24
	      All Rights Reserved
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
    25
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    26
$Header: /cvs/stx/stx/libbasic/Time.st,v 1.14 1995-02-08 03:11:08 claus Exp $
88
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    27
'!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    28
88
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    29
!Time class methodsFor:'documentation'!
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    30
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    31
copyright
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    32
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    33
 COPYRIGHT (c) 1989 by Claus Gittinger
159
514c749165c3 *** empty log message ***
claus
parents: 95
diff changeset
    34
	      All Rights Reserved
88
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    35
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    36
 This software is furnished under a license and may be used
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    37
 only in accordance with the terms of that license and with the
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    39
 be provided or otherwise made available to, or used by, any
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    40
 other person.  No title to or ownership of the software is
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    41
 hereby transferred.
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    42
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    43
!
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    44
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    45
version
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    46
"
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    47
$Header: /cvs/stx/stx/libbasic/Time.st,v 1.14 1995-02-08 03:11:08 claus Exp $
88
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    48
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    49
!
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    50
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    51
documentation
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    52
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    53
    Instances of time represent a particular time-of-day.
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    54
    Since they only store hours, minutes and seconds of a day,
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    55
    they cannot be used to compare times across midnight.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    56
    Use instances of AbsoluteTime (and read the comment there) to do this.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    57
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    58
    Examples:
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    59
        |t|
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    60
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    61
        t := Time now.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    62
        Transcript showCr:t.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    63
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    64
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    65
        |t1 t2|
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    66
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    67
        t1 := Time now.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    68
        (Delay forSeconds:10) wait.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    69
        t2 := Time now.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    70
        t2 - t1   
88
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    71
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    72
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    73
a27a279701f8 Initial revision
claus
parents:
diff changeset
    74
!Time class methodsFor:'instance creation'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    75
a27a279701f8 Initial revision
claus
parents:
diff changeset
    76
now
a27a279701f8 Initial revision
claus
parents:
diff changeset
    77
    "return an instance of Time representing this moment"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    78
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
    79
    ^ self fromOSTime:(OperatingSystem getTimeParts)
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
    80
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
    81
    "
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
    82
     Time now
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
    83
    "
62
e1b4369c61fb *** empty log message ***
claus
parents: 32
diff changeset
    84
!
e1b4369c61fb *** empty log message ***
claus
parents: 32
diff changeset
    85
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
    86
hour:h minutes:m seconds:s
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
    87
    "return an instance of Time representing the given values"
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
    88
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    89
    |seconds|
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
    90
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    91
    seconds := ((h\\24) * 60 * 60 ) + (m * 60) + s.
62
e1b4369c61fb *** empty log message ***
claus
parents: 32
diff changeset
    92
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    93
    ^ self basicNew timeEncoding:seconds.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    94
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
    95
    "
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
    96
     Time hour:2 minutes:33 seconds:0 
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    97
     Time hour:0 minutes:0 seconds:0 
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    98
     Time hour:24 minutes:0 seconds:0 
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
    99
     Time hour:23 minutes:59 seconds:59 
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   100
    "
77
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   101
!
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   102
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   103
fromOSTime:osTime
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   104
    "return a time, representing the time given by the operatingSystem time"
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
   105
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   106
    OperatingSystem computeTimePartsOf:(osTime at:1) and:(osTime at:2) for:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   107
        :hours :minutes :secs |
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   108
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   109
        ^ self hour:hours minutes:minutes seconds:secs
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   110
    ]
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   111
!
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   112
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   113
readFrom:aStream onError:exceptionBlock
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   114
    "return a new Time, reading a printed representation from aStream.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   115
     If no pm follows the time, the string is interpreted as either 24 hour format
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   116
     or being am."
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   117
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   118
    |hour min sec|
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
   119
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   120
    hour := Integer readFrom:aStream onError:[^ exceptionBlock value].
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   121
    [aStream peek isDigit] whileFalse:[aStream next].
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   122
    min := Integer readFrom:aStream onError:[^ exceptionBlock value].
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   123
    [aStream peek isDigit] whileFalse:[aStream next].
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   124
    sec := Integer readFrom:aStream onError:[^ exceptionBlock value].
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   125
    [aStream peek == Character space] whileTrue:[aStream next].
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   126
    (aStream peek == $p) ifTrue:[
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   127
        "pm"
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   128
        hour := hour + 12
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   129
    ].
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   130
    ^ self hour:hour minutes:min seconds:sec
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
   131
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   132
    "
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   133
     Time readFromString:'18:22:00'    
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   134
     Time readFromString:'14:00:11'    
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   135
     Time readFromString:'7:00:11'     
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   136
     Time readFromString:'6:22:00 pm'   
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   137
     Time readFromString:'2:00:11 pm'  
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   138
     Time readFromString:'7:00:11 am'  
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   139
    "
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   140
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   141
!
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   142
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   143
fromSeconds:seconds
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   144
    "return a Time that is constructed from seconds since midnight."
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   145
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   146
   ^ self basicNew timeEncoding:seconds
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   147
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   148
    "
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   149
     Time fromSeconds:0
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   150
    "
239
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   151
! !
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   152
472f810ecccf readFrom; houtr:minutes:seconds: fixed
claus
parents: 216
diff changeset
   153
!Time class methodsFor:'ST-80 compatibility'!
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
   154
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   155
totalSeconds
a27a279701f8 Initial revision
claus
parents:
diff changeset
   156
    ^ self secondClock
a27a279701f8 Initial revision
claus
parents:
diff changeset
   157
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   158
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   159
!Time methodsFor:'accessing'!
77
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   160
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   161
minutes
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   162
    "return the number of minutes within the hour (i.e. 0..59)"
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   163
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   164
    ^ (timeEncoding \\ 3600) // 60
77
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   165
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   166
    "
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   167
     Time now minutes
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   168
    "
77
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   169
!
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   170
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   171
seconds
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   172
    "return the number of seconds within the minute (i.e. 0..59)"
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   173
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   174
    ^ (timeEncoding \\ 3600) \\ 60
77
6c38ca59927f *** empty log message ***
claus
parents: 62
diff changeset
   175
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   176
    "
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   177
     Time now seconds
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   178
    "
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   179
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   180
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   181
hours
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   182
    "return the number of hours since midnight (i.e. 0..23)"
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   183
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   184
    ^ timeEncoding // 3600
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   185
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   186
    "
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   187
     Time now hours
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   188
    "
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   189
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   190
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   191
!Time methodsFor:'printing & storing'!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   192
62
e1b4369c61fb *** empty log message ***
claus
parents: 32
diff changeset
   193
printOn:aStream
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   194
    "append a printed representation of the receiver to aStream.
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   195
     Format is hh:mm:ss either in 12-hour or 24-hour format.
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   196
     depending on the setting of LanguageTerritory.
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   197
     I dont know what ST-80 does here (12-hour format ?)"
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   198
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   199
    LanguageTerritory = 'usa' ifTrue:[
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   200
	self print12HourFormatOn:aStream
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   201
    ] ifFalse:[
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   202
	self print24HourFormatOn:aStream
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   203
    ]
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   204
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   205
    "
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
   206
     Time now printOn:Transcript. Transcript cr
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   207
    "
62
e1b4369c61fb *** empty log message ***
claus
parents: 32
diff changeset
   208
!
e1b4369c61fb *** empty log message ***
claus
parents: 32
diff changeset
   209
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   210
print24HourFormatOn:aStream
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   211
    "append a printed representation of the receiver to aStream.
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   212
     Format is hh:mm:ss in 24-hour format."
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   213
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   214
    |m s|
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   215
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   216
    self hours printOn:aStream.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   217
    aStream nextPut:$:.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   218
    m := self minutes.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   219
    (m < 10) ifTrue:[aStream nextPut:$0].
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   220
    m printOn:aStream.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   221
    aStream nextPut:$:.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   222
    s := self seconds.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   223
    (s < 10) ifTrue:[aStream nextPut:$0].
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   224
    s printOn:aStream
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   225
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   226
    "
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
   227
     Time now print24HourFormatOn:Transcript. Transcript cr
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   228
    "
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   229
!
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   230
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   231
print12HourFormatOn:aStream
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   232
    "append a printed representation of the receiver to aStream.
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   233
     Format is hh:mm:ss am/pm (i.e. 12-hour american format)."
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   234
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   235
    |h m s|
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   236
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   237
    h := self hours.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   238
    h > 12 ifTrue:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   239
        h := h - 12.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   240
    ] ifFalse:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   241
        h < 1 ifTrue:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   242
            h := 12
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   243
        ]
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   244
    ].
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   245
    h printOn:aStream.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   246
    aStream nextPut:$:.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   247
    m := self minutes.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   248
    (m < 10) ifTrue:[aStream nextPut:$0].
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   249
    m printOn:aStream.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   250
    aStream nextPut:$:.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   251
    s := self seconds.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   252
    (s < 10) ifTrue:[aStream nextPut:$0].
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   253
        s printOn:aStream.
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   254
    h >= 12 ifTrue:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   255
        aStream nextPutAll:' pm'
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   256
    ] ifFalse:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   257
        aStream nextPutAll:' am'
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   258
    ]
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   259
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   260
    "
216
a8abff749575 *** empty log message ***
claus
parents: 159
diff changeset
   261
     Time now print12HourFormatOn:Transcript. Transcript cr
95
d22739a0c6e9 *** empty log message ***
claus
parents: 88
diff changeset
   262
    "
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   263
! !
241
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   264
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   265
!Time methodsFor:'converting'!
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   266
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   267
asSeconds
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   268
    "return the number of seconds elapsed since midnight"
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   269
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   270
    ^ timeEncoding
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   271
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   272
    "
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   273
     Time now asSeconds
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   274
    "
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   275
! !
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   276
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   277
!Time methodsFor:'comparing'!
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   278
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   279
> aTime
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   280
    "return true if the argument, aTime is after the receiver"
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   281
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   282
    (aTime respondsTo:#timeEncoding) ifTrue:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   283
        ^ timeEncoding > aTime timeEncoding
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   284
    ].
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   285
    ^ self getSeconds > aTime getSeconds
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   286
!
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   287
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   288
< aTime
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   289
    "return true if the argument, aTime is before the receiver"
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   290
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   291
    (aTime respondsTo:#timeEncoding) ifTrue:[
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   292
        ^ timeEncoding < aTime timeEncoding
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   293
    ].
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   294
    ^ self getSeconds < aTime getSeconds
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   295
! !
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   296
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   297
!Time methodsFor:'private'!
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   298
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   299
timeEncoding:encoding
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   300
    "the internal encoding is stricktly private, 
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   301
     and should not be used outside."
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   302
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   303
    timeEncoding := encoding
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   304
!
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   305
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   306
timeEncoding
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   307
    "the internal encoding is stricktly private, 
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   308
     and should not be used outside."
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   309
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   310
    ^ timeEncoding
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   311
! !
6f30be88e314 *** empty log message ***
claus
parents: 239
diff changeset
   312