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.
