Forum huvudsida -> Programmering -> LISP - Personnummer
Sidor: 1
DemonicDM | 13:04 - 15:e September 2007 | Post #1 | |
Medlem Inlägg: 10 Skicka PM |
Hej. jag håller på med självstudier och behöver lite hjälp Hur gör man en personnummer kontroll med hjälp av LISP mvh dary ps: jag vet vad man ska göra men inte hur man ska skriva koden. edit: jag har skrivit färdigt koden. tack för visat intresse. Senast redigerad 12:05 - 4:e Oktober 2007 |
HärJ | 18:02 - 15:e September 2007 | Post #2 | |
Moderator Inlägg: 1198 Skicka PM |
jag kan lite lisp så om du talar om hur man kontrollerar personnummer så kan jag hjälpa dig. (jag är lat och orkar inte googla på det q:) EDIT: Eftersom jag inte hade nåt att göra har jag nu skrivit ett program som gör detta. Det var lite klurigare än jag trodde, kanske beroende på att det var ett tag sen jag höll på med lisp. Kan ge dig upplägget på min kod(för ful för att publiceras): 1. Ta emot personnummer 2. Omvandla till lista 3. Räkna ut delsummor 4. Summera 5. Jämför med kontrollsiffran det var så jag gjorde... (om jag snyggar till koden kommer den upp, om som sagt) ------------------------- Tänk om jag vore en skalärprodukt! Senast redigerad 23:57 - 15:e September 2007 |
webbgbg | 18:27 - 21:a Oktober 2007 | Post #3 | |
Medlem Inlägg: 2 Skicka PM |
Här är ett javascript som ordnar det där med att kolla personnummer: <script type="text/javascript"> function personnummer(nr){ this.valid=false; if(!nr.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})$/)){ return false; } this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4); this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4; this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1; var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31); if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; } if(this.month*1<1||this.month*1>12||this.day*1<1||this.day*1>months[this.month*1-1]){ return false; } this.alldigits=this.year+this.month+this.day+this.controldigits; var nn=""; for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); } this.checksum=0; for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; } this.valid=(this.checksum%10==0)?true:false; this.sex=parseInt(this.controldigits.substring(2,3))%2; } </script> <br><br><br><br><br><br><br><br><br><br> <center> <font face="Arial" size="4" color="#ff0000"> Kontrollera om personnumret är giltigt </font> <br><br> <font face="Arial" size="2"> <form onsubmit="if(new personnummer(this.pnr.value).valid){ alert(''Giltigt personnummer''); } else { alert(''0giltigt personnummer''); }; return false;"> Personnummer: <input type="text" value="ååmmdd-nnnn" name="pnr"> <input type="submit" value="Kontrollera"> </form> </center> </font> Håll tillgodo ------------------------- http://www.webbgbg.se -för dig som behöver hjälp med SEO, webbdesign, webbhotell och översättning |
DemonicDM | 17:48 - 9:e December 2007 | Post #4 | |
Medlem Inlägg: 10 Skicka PM |
tack för den långa koden, men jag har redan skrivit koden. vill ni så maila mig skickar jag er en kopia av koden |
HärJ | 21:10 - 9:e December 2007 | Post #5 | |
Moderator Inlägg: 1198 Skicka PM |
webgbg: inte för att vara elak men vad tänkte du med när du postar javascript när det är lisp som efterfrågas? Han skulle studera koden och översätta den till lisp? Jag är skeptisk. ------------------------- Tänk om jag vore en skalärprodukt! |
Sidor: 1
Forum huvudsida -> Programmering -> LISP - Personnummer
Du får inte posta i den här tråden | Till toppen
Datum
2024-12-23 00:46
Vecka: 52
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.