{"id":271,"date":"2020-04-28T23:51:04","date_gmt":"2020-04-29T02:51:04","guid":{"rendered":"http:\/\/fabiobrandao.net.br\/blog\/?p=271"},"modified":"2023-03-11T23:00:12","modified_gmt":"2023-03-12T02:00:12","slug":"c-calcular-digito-verificador-do-ean-13","status":"publish","type":"post","link":"https:\/\/fabiobrandao.net.br\/blog\/csharp\/c-calcular-digito-verificador-do-ean-13\/","title":{"rendered":"C# &#8211; Calcular d\u00edgito verificador do EAN-13"},"content":{"rendered":"<p><strong>EAN-13<\/strong> (<em>European Article Number<\/em>) \u00e9 um c\u00f3digo de barras no padr\u00e3o EAN definido pela <a href=\"https:\/\/www.gs1.org\/\">GS1<\/a>, adaptado em mais de cem organiza\u00e7\u00f5es membros GS1, para a identifica\u00e7\u00e3o dos c\u00f3digo de barras UPC.<\/p>\n<p>No <strong>EAN-13<\/strong> o s\u00edmbolo codifica treze n\u00fameros que est\u00e3o divididos em quatro partes. Dos treze d\u00edgitos, doze s\u00e3o dos dados referentes ao produto e um \u00e9 o d\u00edgito verificador.<\/p>\n<figure id=\"attachment_275\" aria-describedby=\"caption-attachment-275\" style=\"width: 760px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-275\" src=\"http:\/\/fabiobrandao.net.br\/blog\/wp-content\/uploads\/2020\/04\/EAN-13-1024x506.png\" alt=\"EAN-13\" width=\"760\" height=\"376\" srcset=\"https:\/\/fabiobrandao.net.br\/blog\/wp-content\/uploads\/2020\/04\/EAN-13-1024x506.png 1024w, https:\/\/fabiobrandao.net.br\/blog\/wp-content\/uploads\/2020\/04\/EAN-13-300x148.png 300w, https:\/\/fabiobrandao.net.br\/blog\/wp-content\/uploads\/2020\/04\/EAN-13-768x380.png 768w, https:\/\/fabiobrandao.net.br\/blog\/wp-content\/uploads\/2020\/04\/EAN-13.png 1325w\" sizes=\"auto, (max-width: 760px) 100vw, 760px\" \/><figcaption id=\"caption-attachment-275\" class=\"wp-caption-text\">EAN-13<\/figcaption><\/figure>\n<p>A GS1 possui uma calculadora em seu site dispon\u00edvel em\u00a0<a href=\"https:\/\/www.gs1.org\/services\/check-digit-calculator\">https:\/\/www.gs1.org\/services\/check-digit-calculator<\/a>.<\/p>\n<p>A ideia \u00e9 demonstrar como calcular o d\u00edgito verificador utilizando C#. Vamos ao c\u00f3digo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic static int Ean13CalculateCheckDigit(string barcode)\r\n{\r\n\tint&#x5B;] array = new int&#x5B;]\r\n\t{\r\n\t\tint.Parse(barcode&#x5B;0].ToString()),\r\n\t\tint.Parse(barcode&#x5B;1].ToString()) * 3,\r\n\t\tint.Parse(barcode&#x5B;2].ToString()),\r\n\t\tint.Parse(barcode&#x5B;3].ToString()) * 3,\r\n\t\tint.Parse(barcode&#x5B;4].ToString()),\r\n\t\tint.Parse(barcode&#x5B;5].ToString()) * 3,\r\n\t\tint.Parse(barcode&#x5B;6].ToString()),\r\n\t\tint.Parse(barcode&#x5B;7].ToString()) * 3,\r\n\t\tint.Parse(barcode&#x5B;8].ToString()),\r\n\t\tint.Parse(barcode&#x5B;9].ToString())* 3,\r\n\t\tint.Parse(barcode&#x5B;10].ToString()),\r\n\t\tint.Parse(barcode&#x5B;11].ToString()) * 3\t\t\t\t\r\n\t};\r\n\r\n\tint sum = (array&#x5B;0] + array&#x5B;1] + array&#x5B;2] + array&#x5B;3] + array&#x5B;4] + array&#x5B;5] + array&#x5B;6] + array&#x5B;7] + array&#x5B;8] + array&#x5B;9] + array&#x5B;10] + array&#x5B;11]);\r\n\r\n\tint checkDigit = (((sum \/ 10) + 1) * 10) - sum;\r\n\r\n\tif (checkDigit % 10 == 0) checkDigit = 0;\r\n\r\n\treturn checkDigit;\r\n}\r\n<\/pre>\n<p>Os passos s\u00e3o simples:<\/p>\n<ol>\n<li>Multiplicam-se os d\u00edgitos do c\u00f3digo de 12 d\u00edgitos por 1 e por 3, em sequ\u00eancia repetitiva de 1 e 3;<\/li>\n<li>Somando o resultado das multiplica\u00e7\u00f5es encontra-se o total;<\/li>\n<li>O valor total da soma das multiplica\u00e7\u00f5es deve ser dividido por 10;<\/li>\n<li>Transforme o resultado em inteiro, &#8220;arredondando&#8221; o n\u00famero para baixo;<\/li>\n<li>Some 1 ao resultado da divis\u00e3o;<\/li>\n<li>Multiplique o resultado dessa soma por 10;<\/li>\n<li>Subtraia desse resultado o valor da soma inicial das multiplica\u00e7\u00f5es;<\/li>\n<li>Se o resultado for um m\u00faltiplo de 10, o d\u00edgito verificador ser\u00e1 0.<\/li>\n<\/ol>\n<p>No <a href=\"https:\/\/pt.wikipedia.org\/wiki\/EAN-13\">Wikipedia<\/a> voc\u00ea pode entender mais sobre o EAN-13.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>EAN-13 (European Article Number) \u00e9 um c\u00f3digo de barras no padr\u00e3o EAN definido pela GS1, adaptado em mais de cem organiza\u00e7\u00f5es membros GS1, para a identifica\u00e7\u00e3o dos c\u00f3digo de barras&#8230; <\/p>\n","protected":false},"author":1,"featured_media":360,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[82],"tags":[39,59,58],"class_list":["post-271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","tag-c","tag-digito-verificador","tag-ean-13"],"_links":{"self":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts\/271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/comments?post=271"}],"version-history":[{"count":7,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts\/271\/revisions"}],"predecessor-version":[{"id":371,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts\/271\/revisions\/371"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/media\/360"}],"wp:attachment":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/media?parent=271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/categories?post=271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/tags?post=271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}