我需要一个C# .NET函数来评估键入或扫描的条形码是否为有效的Global Trade Item Number (UPC或EAN)。

条形码号码的最后一位是计算机校验位,它确保条形码的正确组成。GTIN Check Digit Calculator
发布于 2021-03-27 01:02:40
我今天花了一些时间来完全支持GTIN-8、GTIN-12、GTIN-13和GTIN-14的校验和计算。大多数算法示例只支持GTIN-13或很难看。
那这个呢?
public static char CalculateCheckSumDigit(string code)
{
// https://www.gs1.org/services/how-calculate-check-digit-manually
var reversed = code.Reverse().Skip(1);
int sum = 0;
int multiplier = 3;
foreach(char c in reversed)
{
if (multiplier == 3)
{
sum += (c - 0x30) * multiplier;
multiplier = 1;
}
else
{
sum += (c - 0x30) * multiplier;
multiplier = 3;
}
}
int closestTenth = (sum + 9) / 10 * 10;
return (char)((closestTenth - sum) + 0x30);
}https://stackoverflow.com/questions/10143547
复制相似问题