[Newbies] 23 to 23rd?

Greg A. Woods; Planix, Inc. woods at planix.ca
Thu Dec 11 20:22:43 UTC 2008


On 11-Dec-2008, at 1:52 PM, Lukas Renggli wrote:

> Seaside 2.9 comes with the following method:
>
> ordinalize: anInteger
> 	^ (anInteger \\ 100 between: 11 and: 13)
> 		ifTrue: [ 'th' ]
> 		ifFalse: [
> 			#('st' 'nd' 'rd')
> 				at: anInteger \\ 10
> 				ifAbsent: [ 'th' ] ]

To fit it nicely into Integer, and to make it work for negative  
numbers as well, then perhaps the following tiny adaptation of the  
Seaside method is better?


(-25 to: 25) collect: [:i | i asStringWithOrdinalSuffix]    #('-25th'  
'-24th' '-23rd' '-22nd' '-21st' '-20th' '-19th' '-18th' '-17th'  
'-16th' '-15th' '-14th' '-13th' '-12th' '-11th' '-10th' '-9th' '-8th'  
'-7th' '-6th' '-5th' '-4th' '-3rd' '-2nd' '-1st' '0th' '1st' '2nd'  
'3rd' '4th' '5th' '6th' '7th' '8th' '9th' '10th' '11th' '12th' '13th'  
'14th' '15th' '16th' '17th' '18th' '19th' '20th' '21st' '22nd' '23rd'  
'24th' '25th')


'From Squeak3.10.2 of ''5 June 2008'' [latest update: #7179] on 11  
December 2008 at 3:10:28 pm'!

!Integer methodsFor: 'printing' stamp: 'GAW 12/11/2008 15:04'!
asStringWithOrdinalSuffix
         "Answer the string representation with English ordinal suffix  
concatenated"
         ^ self printString , self ordinalSuffix! !

!Integer methodsFor: 'printing' stamp: 'GAW 12/11/2008 15:03'!
ordinalSuffix
         "Answer a string representing the English ordinal suffix for  
self"
         |abs|
         abs := self abs.
         ^ (abs \\ 100 between: 11 and: 13)
                 ifTrue: ['th']
                 ifFalse: [#('st' 'nd' 'rd' )
                                 at: abs \\ 10
                                 ifAbsent: ['th']]! !

-- 
					Greg A. Woods; Planix, Inc.
					<woods at planix.ca>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://lists.squeakfoundation.org/pipermail/beginners/attachments/20081211/51938b88/PGP.pgp


More information about the Beginners mailing list