std.validate.ch_ahv

AHV-Nummer (Alters- und Hinterlassenenversicherung) — Schweizer Sozialversicherungsnummer. Die seit 2009 gültige 13-stellige Nummer folgt dem EAN-13-Profil mit dem fixen Präfix 756 (Ländercode Schweiz). Die Prüfziffer wird identisch zur EAN-13-Formel (Mod-10, Gewichte 1 und 3) berechnet.

std.validate · std.validate.ean


Konstanten

Name Wert Bedeutung
CH_AHV_OK 0 Gültig
CH_AHV_ERR_INVALID_LENGTH 1 Länge ≠ 13 (ohne Punkte)
CH_AHV_ERR_INVALID_CHAR 2 Ungültige Zeichen
CH_AHV_ERR_INVALID_PREFIX 3 Kein 756-Präfix
CH_AHV_ERR_INVALID_CHECK 4 Falsche EAN-13-Prüfziffer

Verwendung

import std.io;
import std.alloc;
import std.validate.ch_ahv;

fn main(): int64 {
    var ahv: pchar := "756.1234.5678.97";
    var buf: int64 := alloc(24);

    Print("rc="); PrintLn(IntToStr(CHAHVValidate(ahv as int64)));   // 0 = CH_AHV_OK

    CHAHVNormalize(ahv as int64, buf);
    Print("normalisiert: "); Print(buf as pchar); Print("\n");

    Print("Pruefziffer: "); PrintLn(IntToStr(CHAHVCheckDigit("756123456789" as int64)));
    return 0;
}

rc=0
normalisiert: 7561234567897
Pruefziffer: 7

Die Funktionen dieser Unit geben keine Zeichenketten zurück: Das Ergebnis landet in einem selbst übergebenen Puffer (out_buf), der Rückgabewert ist ein Fehlercode (0 = in Ordnung). Die Eingabe wird als int64 erwartet — der Cast wert as int64 ist nötig, weil die pchar-Bereinigung (#1613) units/validate noch nicht erreicht hat.


Funktionen

Signatur Sichtbarkeit Beschreibung
CHAHVValidate(ahv: int64): int64 pub AHV-Nummer prüfen; CH_AHV_OK oder Fehlercode
CHAHVNormalize(ahv: int64, out_buf: int64): int64 pub Punkte entfernen, Ergebnis nach out_buf
CHAHVCheckDigit(ahv: int64): int64 pub EAN-13-Prüfziffer für den 12-stelligen Stamm

Nicht vorhanden: CHAHVFormat.

Letzte Aktualisierung: 2026-08-19 — Seite gegen die echten Signaturen berichtigt; Beispiel mit lyxc 1.1.3I übersetzt und ausgeführt.