Personnummer

Run Settings
LanguageC#
Language Version
Run Command
using System; using System.Text.RegularExpressions; using System.Linq; using System.Collections.Generic; class MainClass { static void Main() { var pnr = "0001010008"; var control = false; var val = 0; pnr = Regex.Replace(pnr, "[^0-9]", ""); if(pnr.Length > 10) { pnr = pnr.Substring(2); } var pnrList = pnr.Select(c => (int)Char.GetNumericValue(c)).ToList(); for(int i = 0; i < 9; i++) { var temp = 2 - i % 2; temp *= pnrList[i]; val += temp % 10; // addera ental val += temp / 10; // addera tiotal som ental } var actual = 10 - val % 10; // invertera tiotal actual %= 10; // korrigera så 10 blir 0 Console.WriteLine($"val = {val}"); if(pnr.Length == 9) { Console.WriteLine($"Personnummer: {pnr}{actual}"); } else { Console.WriteLine($"Personnummer: {pnr}"); control = pnrList[9] == actual; Console.WriteLine($"Kontrollsiffran stämmer{(control ? "." : " inte!")}"); if(!control) { Console.WriteLine($"Det riktiga kontrollsiffran är {actual}"); Console.WriteLine($"Korrigerat personnummer: {pnr.Substring(0,9)}{actual}"); } } } }
Editor Settings
Theme
Key bindings
Full width
Lines