using System.Security.Cryptography;
public static void Main()
var originalInvoiceNr = "3";
var originalInvoiceDate = new DateTime(2023, 01, 02);
string invoiceNr = originalInvoiceNr;
if (originalInvoiceNr.Length > 8)
invoiceNr = originalInvoiceNr.Substring(invoiceNr.Length - 8);
else if (originalInvoiceNr.Length < 8)
for (int i = originalInvoiceNr.Length; i <= 8; i++)
invoiceNr = "0" + invoiceNr;
var modulo = long.Parse(originalInvoiceDate.ToString("yy") + invoiceNr.ToString());
string moduloString = modulo.ToString("00");
var structuredReference = "+++" + originalInvoiceDate.ToString("yy") + invoiceNr[0] + "/" + invoiceNr.Substring(1, 4) + "/" + invoiceNr.Substring(5, 3) + moduloString + "+++";
Console.WriteLine(structuredReference);