码迷,mamicode.com
首页 > Windows程序 > 详细

C# 生成UPC-A码

时间:2015-01-04 16:55:35      阅读:1246      评论:0      收藏:0      [点我收藏+]

标签:

因为最近工作中用到UPC-A码,所以就研究了下,先简单介绍下UPC-A码

UPC码是美国统一代码委员会制定的一种商品用条码,主要用于美国和加拿大地区,我们在美国进口的商品上可以看到。UPC码(Universal Product Code)是最早大规模应用的条码,其特性是一种长度固定、连续性的条码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码。 UPC码仅可用来表示数字,故其字码集为数字0~9。

主要格式如下图:


UPC-A

旗码、厂商代码、产品代码需要跟相关部门申请,检查码是根据前面的代码生成出来的,生成规则如下:

从国别码开始自左至右取数,设UPC-A各码代号如下:

N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 C
则检查码之计算步骤如下:

C1 = N1+ N3+N5+N7+N9+N11

C2 = (N2+N4+N6+N8+N10)× 3

CC = (C1+C2) 取个位数

C (检查码) = 10 – CC  (若值为10,则取0)

 

 

C#生成检查码的代码如下:

        //假设旗码为7,厂商代码为08502,传入产品代码即可生成出upc-a码
        private const string code = "708502";
        public string GetCodeUPC(string number)
        {
            string strcode = code + number;
            int c1 = int.Parse(strcode[10].ToString()) + int.Parse(strcode[8].ToString()) + int.Parse(strcode[6].ToString()) + int.Parse(strcode[4].ToString()) + int.Parse(strcode[2].ToString()) + int.Parse(strcode[0].ToString());
            int c2 = c1 * 3;
            int c3 = 0 + int.Parse(strcode[1].ToString()) + int.Parse(strcode[3].ToString()) + int.Parse(strcode[5].ToString()) + int.Parse(strcode[7].ToString()) + int.Parse(strcode[9].ToString());
            int c4 = c2 + c3;
            int c = 10 - c4 % 10;
            if (c == 10) c = 0;
            string upc = strcode + c.ToString();
            return upc;
        }

 

C# 生成UPC-A码

标签:

原文地址:http://www.cnblogs.com/sunsoftware/p/4201345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!