<?xml version="1.0" encoding="ISO-8859-15"?>
<rss version="2.0"><channel>
<title>ajankohtien suomeksimuuntaja</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/</link>
<description>Recent changes in ajankohtien suomeksimuuntaja</description>
<item><title>ajankohtien suomeksimuuntaja</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/ajankohtien%20suomeksimuuntaja</link>
<guid>http://sange.fi/~atehwa/cgi-bin/piki.cgi/#1283107212</guid>
<description>&lt;p&gt;&lt;ins&gt;Tämä ohjelma on elokuvaprojektia varten ([elokuva: 
Juppihippijuntta]). Sille annetaan ajankohta (oletus: tämä hetki) ja se 
palauttaa ajankohdan nimen suomen äännerakenteeseen sopivana 
sanana.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;{{{ #!/usr/bin/env python # coding: latin-1&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;import time, sys&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;tavunalku = list("hjklmnprstv") tavunydin = 
sorted(frozenset(['ie', 'uo'] + [yd for vok in "aeiou" for yd in (vok, 
vok+vok, vok+'i', vok+'u')])) lyhytydin = list('aeiou') tavunloppu = 
[''] + list("hklmnprst") tuplaloppu = [lik+klus for lik in "lmnr" for 
klus in "kpst" if lik+klus not in ['mk', 'mt', 'np']]&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;cvc_maara = len(tavunalku) * len(tavunydin) * len(tavunloppu) 
cvcc_maara = len(tavunalku) * len(lyhytydin) * len(tuplaloppu) 
tavu_maara = cvc_maara + cvcc_maara&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;epoch = time.mktime((2006,6,26,0,0,0,0,0,0)) timeformat = 
'%d.%m.%Y %H:%M:%S'&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def stats(): print len(tavunalku), tavunalku print 
len(tavunydin), tavunydin print len(tavunloppu), tavunloppu print 
len(lyhytydin), lyhytydin print len(tuplaloppu), tuplaloppu print 
cvc_maara, cvcc_maara, tavu_maara&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def etuvokaaliksi(kirjain): if kirjain == 'a': return 'ä' if 
kirjain == 'o': return 'ö' if kirjain == 'u': return 'y' return 
kirjain&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def etuvokaaliseksi(sana): return 
''.join([etuvokaaliksi(kirjain) for kirjain in sana])&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def generaattori(lista): return lambda n: (lista[n % 
len(lista)], n // len(lista))&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;alkugen = generaattori(tavunalku) ydingen = 
generaattori(tavunydin) loppugen = generaattori(tavunloppu) lyhytgen = 
generaattori(lyhytydin) tuplagen = generaattori(tuplaloppu)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def bitti(n): return n % 2, n // 2&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def tavugen(numero): n1 = numero % tavu_maara if n1 &lt; 
cvc_maara: loppu, n2 = loppugen(n1) ydin, n3 = ydingen(n2) alku, n4 = 
alkugen(n3) else: loppu, n2 = tuplagen(n1 - cvc_maara) ydin, n3 = 
lyhytgen(n2) alku, n4 = alkugen(n3) return alku+ydin+loppu, numero // 
tavu_maara&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def sanagen(numero): tavu, n2 = tavugen(numero) if n2 &lt;= 0: 
return tavu return sanagen(n2) + tavu&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;def sana_ajankohdasta(hetki): numero = int(hetki - epoch) // 60 
if numero &lt; 0: return etuvokaaliseksi(sanagen(0-numero)) return 
sanagen(numero)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;if __name__ == '__main__': if len(sys.argv) &gt; 1: hetki = 
time.mktime(time.strptime(sys.argv[1], timeformat)) else: hetki = 
time.time() print sana_ajankohdasta(hetki)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;}}}&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;----&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;[kategoria: kieli] [kategoria: projektit]&lt;/ins&gt;

</description>
<pubDate>Sun, 29 Aug 2010 18:40:12 +0000</pubDate>
</item>

</channel></rss>
