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#版)的更多相关文章

  1. java实现二维码生成的几个方法

    1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/ ...

  2. 如何做系列(4)-微博URL短网址生成算法原理(java版、php版实现实例)

    短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代 ...

  3. 二维码生成delphi版

    二维码生成delphi版 生成二维码的软件,代码从C语言转换过来(源地址:http://fukuchi.org/works/qrencode/),断断续续的差不多花了一周时间来转换和调试.在转换过程中 ...

  4. PHP用抛物线的模型实现微信红包生成算法的程序源码

    <?php /* *Author:Kermit *Time:2015-8-26 *Note:红包生成随机算法 */ header("Content-type:text/html;cha ...

  5. PHP微信红包生成算法的程序源码(用抛物线的模型实现)

    代码如下: <?php /* * 红包生成随机算法 */ header("Content-type:text/html;charset=utf-8"); date_defau ...

  6. java 二维码生成(可带图片)springboot版

    本文(2019年6月29日 飞快的蜗牛博客) 有时候,男人和女人是两个完全不同的世界,男人的玩笑和女人的玩笑也完全是两码事,爱的人完全不了解你,你也不要指望一个女人了解你,所以男的不是要求别人怎么样, ...

  7. 理解分布式id生成算法SnowFlake

    理解分布式id生成算法SnowFlake https://segmentfault.com/a/1190000011282426#articleHeader2 分布式id生成算法的有很多种,Twitt ...

  8. 美团技术分享:深度解密美团的分布式ID生成算法

    本文来自美团技术团队“照东”的分享,原题<Leaf——美团点评分布式ID生成系统>,收录时有勘误.修订并重新排版,感谢原作者的分享. 1.引言 鉴于IM系统中聊天消息ID生成算法和生成策略 ...

  9. [开源]C#二维码生成解析工具,可添加自定义Logo

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

随机推荐

  1. 【转】【C#】ZIP、RAR 压缩与解压缩

    压缩文件夹 源码如下 using System; using System.Data; using System.Configuration; using System.Web; using Syst ...

  2. C++ GDI+调用

    封装了一个GDI+的使用类 GdiPluss.h #pragma once #include <comdef.h> #include <gdiplus.h> using nam ...

  3. android LayoutInflater 笔记

    LayoutInflater类用于查找布局文件并实例化.用于动态将布局加入界面中. 参考链接 http://blog.csdn.net/guolin_blog/article/details/1292 ...

  4. C++ 类的复制控制

    写了又删,删了又写,才发现这一章节不好描述. 那就假定个前提吧,假定已经知道: ① C++的类有构造函数. ② 如果不提供任何构造函数,那编译器会生成默认的无参构造函数--默认构造函数只会进行成员变量 ...

  5. ffmpeg笔记——UDP组播接收总结

    ffmpeg在avformat_open_input里面已经实现了UDP的协议,所以只需要设置好参数,将url传递进去就可以了. 和打开文件的方式基本一样: 01 AVCodecContext *pV ...

  6. Qt的窗口的最大化。

    1.window.showFullScreen()//此方法只对顶级窗口有效,对子窗口无效 QT中窗口部件QWidget成员函数showFullScreen();是用于将窗口部件全屏显示,但是他只对窗 ...

  7. c#后台访问接口

    直接上代码 后台代码 //接口地址string url = "http://spherefg.topsmoon.com:6666/restapi/Comment/SubmitCommentF ...

  8. 【Java集合的详细研究9】Java堆栈(stack)的使用方法

    栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素.”先进后出”或”后进先出”就是栈 ...

  9. js 停止事件冒泡 阻止浏览器的默认行为

    在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”. 浏览器默认行为: 在form中按回车键就会提交表单:单击鼠标右键就会弹出context menu. ...

  10. 如何POST一个JSON格式的数据给Restful服务

    在Android/java平台上实现POST一个json数据: JSONObject jsonObj = new JSONObject(); jsonObj.put("username&qu ...