#REFACTORING by exept
class: Filename
changed:
#appendingWriteStreamOrNil
#createAsEmptyFile
#isNonEmptyDirectory
#newReadWriteStreamOrNil
#readStreamOrNil
#readWriteStreamOrNil
#writeStreamOrNil
"{ Package: 'stx:libbasic' }"
"{ NameSpace: Smalltalk }"
Object subclass:#TimePeriod
instanceVariableNames:'startTime endTime'
classVariableNames:''
poolDictionaries:''
category:'Magnitude-Time'
!
!TimePeriod class methodsFor:'documentation'!
documentation
"
This class represents time periods defined by start and endtime.
It will be as a representation of ISO8601 timeperiods.
"
!
examples
"
[exBegin]
|p|
p := TimePeriod startTime:(Date today) endTime:(Date tomorrow).
p duration
[exEnd]
[exBegin]
|p|
p := TimePeriod startTime:(Time now) endTime:(Date tomorrow).
p duration
[exEnd]
[exBegin]
|p|
p := TimePeriod startTime:(Timestamp now) endTime:(Timestamp fromString:'2050-01-01').
p duration
[exEnd]
"
! !
!TimePeriod class methodsFor:'instance creation'!
startTime:startTimeArg endTime:endTimeArg
^ self new startTime:startTimeArg endTime:endTimeArg
! !
!TimePeriod methodsFor:'accessing'!
endTime
^ endTime
!
endTime:aTimeOrDate
endTime := aTimeOrDate asTimestamp.
!
startTime
^ startTime
!
startTime:aTimeOrDate
startTime := aTimeOrDate asTimestamp.
!
startTime:startTimeArg endTime:endTimeArg
startTime := startTimeArg asTimestamp.
endTime := endTimeArg asTimestamp.
! !
!TimePeriod methodsFor:'queries'!
duration
"return the difference between end- and starttime"
^ endTime - startTime
"
(TimePeriod startTime:(Date today) endTime:(Date tomorrow)) duration -> 1d
(TimePeriod startTime:(Time now) endTime:(Date tomorrow)) duration -> rest duration till tomorrow
(TimePeriod startTime:(Timestamp now) endTime:(Timestamp fromString:'2050-01-01')) duration
"
! !
!TimePeriod class methodsFor:'documentation'!
version
^ '$Header$'
!
version_CVS
^ '$Header$'
! !