Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
# Validera ett svenskt personnummer i Ruby # jonelf@gmail.com require 'date.rb' pnum=ARGV[0] if pnum==nil then print "Ange personnummer som yyyyMMddcccc.\n" exit elsif pnum.length!=12 then print "Det skall vara 12 siffror." else begin date=DateTime.strptime(pnum[0,4] +'-'+ pnum[4,2] +'-'+ pnum[6,2], '%F') rescue ArgumentError => argerr printf("%s är inte ett riktigt datum.\n", pnum[0,8]) exit rescue Exception => ex print ex.to_s exit end checksum=0 pos=0 n=0 0.upto(9) do |pos| n=pnum[pos+2].to_i-48 if pos%2==0 then checksum+=(n*2).modulo(9)+(n/9)*9 else checksum+=n end end if checksum%10==0 then print "Personnumret har ett korrekt datum och en korrekt checksumma.\n" else printf("Personnumret är inte korrekt. Checksumman skall vara jämnt delbar med 10 men är %d.\n", checksum) end end
This paste will be private.
From the Design Piracy series on my blog: