TimeDuration.st
changeset 22866 43f44339eee0
parent 22865 77d1d90b53bc
child 22868 b8cf1f0e0e65
equal deleted inserted replaced
22865:77d1d90b53bc 22866:43f44339eee0
   796      (TimeDuration fromString:'10s') / 5
   796      (TimeDuration fromString:'10s') / 5
   797     "
   797     "
   798 !
   798 !
   799 
   799 
   800 abs
   800 abs
   801     ^ self class new 
   801     ^ self class new setMilliseconds:(self asExactMilliseconds abs)
   802         setMilliseconds:(self getMilliseconds abs)
       
   803         additionalPicoseconds:(additionalPicoseconds?0) abs
       
   804 
   802 
   805     "
   803     "
   806      (TimeDuration fromSeconds:3600) abs
   804      (TimeDuration fromSeconds:3600) abs
   807      (TimeDuration fromSeconds:-3600) abs
   805      (TimeDuration fromSeconds:-3600) abs
   808 
   806 
   810      (TimeDuration fromSeconds:-20000) abs
   808      (TimeDuration fromSeconds:-20000) abs
   811     "
   809     "
   812 !
   810 !
   813 
   811 
   814 negated
   812 negated
   815     ^ self class new 
   813     ^ self class new setMilliseconds:(self asExactMilliseconds) negated
   816         setMilliseconds:(self getMilliseconds) negated
       
   817         additionalPicoseconds:(additionalPicoseconds?0) negated
       
   818 
   814 
   819     "
   815     "
   820      50 nanoseconds negated asNanoseconds
   816      50 nanoseconds negated asNanoseconds
   821      1 seconds negated asSeconds
   817      1 seconds negated asSeconds
   822     "
   818     "
  2033 
  2029 
  2034 setMilliseconds:millis
  2030 setMilliseconds:millis
  2035     "set my duration given milliseconds.
  2031     "set my duration given milliseconds.
  2036      Duration can be longer than a day"
  2032      Duration can be longer than a day"
  2037 
  2033 
  2038     |rest|
       
  2039 
       
  2040     millis isInteger ifTrue:[
  2034     millis isInteger ifTrue:[
  2041         timeEncoding := millis.
  2035         timeEncoding := millis.
  2042     ] ifFalse:[
  2036     ] ifFalse:[
  2043         timeEncoding := millis truncated.
  2037         timeEncoding := millis // 1.
  2044         rest := millis - timeEncoding.
  2038         additionalPicoseconds := ((millis \\ 1) * 1000 * 1000 * 1000) rounded asInteger.
  2045         additionalPicoseconds := (rest * 1000 * 1000 * 1000) rounded asInteger.
       
  2046     ]
  2039     ]
  2047 
  2040 
  2048     "Modified: / 18-07-2007 / 13:44:16 / cg"
  2041     "Modified: / 18-07-2007 / 13:44:16 / cg"
  2049 !
  2042 !
  2050 
  2043