组织机构代码校验码生成算法(C#版)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace OrganizationCode
{
class Program
{
public static void Main(string[] args)
{
string y_bm = "";
//y_bm = "71774346-9";
//y_bm = "73767624-0";
//y_bm = "74549579-X";
y_bm = "74610229-x";
Console.WriteLine(y_bm);
string bm = Code9(y_bm);
Console.WriteLine(bm); }
//组织机构代码校验码(验证程序)
//组织机构代码71774346-9,73767624-0
//规定本体代码PDY00001至PDY99999为自定义区,供各系统编制内部组织机构代码使用。
//自定义区内编制的组织机构代码不作为个系统之间信息交换的依据
//组织机构代码管理办法 编制规则
//校验码按照以下公式计算:
/*C9=11-MOD(∑Ci(i=1→8)×Wi,11)
式中: MOD——代表求余函数;
i——代表代码字符从左至右位置序号;
Ci——代表第i位上的代码字符的值(具体代码字符见附表);
C9——代表校验码;
Wi——代表第i位上的加权因子,其数值见下表:
i=1,2,3,4,5,6,7,8
Wi=3,7,9,10,5,8,4,2
当C9的值为10时,校验码应用大写的拉丁字母X表示;当C9的值为11时校验码用0表示。
*/
//代码字符机器处理字符数值
// 0 0 1 1 9 9 A 10 B 11 Z 35
public static string Code9(string str_in)
{
string rbc = "";
//W权位
int[] wArray = new int[] { , , , , , , , };
string str_in_U = str_in.ToUpper();
char c;
int zz = , z = ;
for (int i = ; i <= ; i++)
{
c = char.Parse(str_in.Substring(i, ));
if (c >= 'A' && c <= 'Z') //A-Z字符
{
z = ((int)c - ) * wArray[i];
}
else if (c >= '' && c <= '') //0-9字符
{
z = int.Parse(c.ToString()) * wArray[i];
}
else
{
rbc = "Err不能输入其他字符错误码";
return rbc;
}
zz += z;
}
string C9 = "";
int jav = - (zz % );
if (jav == )
{
C9 = "X";
}
else if (jav == )
{
C9 = "";
}
else
{
C9 = jav.ToString().Trim(); //删除文本前导空格
}
rbc = str_in.Substring(, ) + "-" + C9;//全国组织机构代码8位本体位加一个校验位
return rbc;
}
}
}
组织机构代码校验码生成算法(C#版)的更多相关文章
- java实现二维码生成的几个方法
1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/ ...
- 如何做系列(4)-微博URL短网址生成算法原理(java版、php版实现实例)
短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代 ...
- 二维码生成delphi版
二维码生成delphi版 生成二维码的软件,代码从C语言转换过来(源地址:http://fukuchi.org/works/qrencode/),断断续续的差不多花了一周时间来转换和调试.在转换过程中 ...
- PHP用抛物线的模型实现微信红包生成算法的程序源码
<?php /* *Author:Kermit *Time:2015-8-26 *Note:红包生成随机算法 */ header("Content-type:text/html;cha ...
- PHP微信红包生成算法的程序源码(用抛物线的模型实现)
代码如下: <?php /* * 红包生成随机算法 */ header("Content-type:text/html;charset=utf-8"); date_defau ...
- java 二维码生成(可带图片)springboot版
本文(2019年6月29日 飞快的蜗牛博客) 有时候,男人和女人是两个完全不同的世界,男人的玩笑和女人的玩笑也完全是两码事,爱的人完全不了解你,你也不要指望一个女人了解你,所以男的不是要求别人怎么样, ...
- 理解分布式id生成算法SnowFlake
理解分布式id生成算法SnowFlake https://segmentfault.com/a/1190000011282426#articleHeader2 分布式id生成算法的有很多种,Twitt ...
- 美团技术分享:深度解密美团的分布式ID生成算法
本文来自美团技术团队“照东”的分享,原题<Leaf——美团点评分布式ID生成系统>,收录时有勘误.修订并重新排版,感谢原作者的分享. 1.引言 鉴于IM系统中聊天消息ID生成算法和生成策略 ...
- [开源]C#二维码生成解析工具,可添加自定义Logo
二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...
随机推荐
- javascript删除字符串最后一个字符
搜到很多无用的答案,这对新手来讲是很耗费时间的事情,我把正确的方法贴出来,以便有的新手不再踩这个坑. JavaScript slice() 方法 定义和用法 slice() 方法可提取字符串的某个部分 ...
- CentOS系统中last命令的作用
CentOS系统中last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户.通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统. 格式 last [—R] [—n] ...
- react新手入门(序)
之前在软件园使用的是react,当时为了做个集光推送,自己去搭过react,这次项目中继续使用react,于是又重新操作了遍,恰巧公司买了本react的书籍,这本书写的非常好,看着并不觉得拗口,很容易 ...
- 【Graphlab】
https://dato.com/ graphlab
- JavaScript 事件参考手册
事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行. 事件句柄 HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元 ...
- 记录下自己常用的全框架HTML代码
纯粹记录下,没有任何意义. 也不推荐使用 <frameset rows="> <frame src=" name="topFrame" scr ...
- C语言----项目构建Make,Automake,CMake
http://blog.csdn.net/dc_726/article/details/48978849
- Java程序员职业规划
Java 程序员职业规划 无论你是学习了 Java 即将进入企业工作,还是已经踏入了工作岗位的程序员.但是面对层出不穷的新技术,激增的就业压力,不断分化的开发角色,再加上 IT 发展的不明确,做出职业 ...
- Ext3.4--Gridpanel
Ext.onReady(function () { var sm = new Ext.grid.RowSelectionModel({singleSelect:true})//设置单选 //var s ...
- GIS-ArcGIS 与 ThreeJs交互联动
一.从GIS触发Three场景 MapFeatureLayer.on("click", function (evt) { graphicsLayerOfMouse.clear(); ...