폴킴 (Paul Kim) -你都記得 You Remember

曾經有那樣深刻的感情,因為家裡反對和當時自己的懦弱 在那之後幾乎看到廟宇就許下:願把自己下半輩子的幸福都給你,只願你幸福喜樂 所以看到這段歌詞非常有感,年紀即將過40,所以真的得若無其事地活下去  네가 아주 행복했음 좋겠어 要是你過得幸福就好了 대신 내가 불행하면 좋겠어 要是換成我變得不幸就好了 기억나지 않았으면 좋겠어 如果什麼都不記得就好了 다시 돌아갈 수 있음 좋겠어 如果能夠再次回頭就好了 너의 찰나와 영원들이 願你所有的剎那和永恆 너만의 것이 되길 都變成專屬於你自己的時刻 사실 난 행복을 잘 몰라 但其實我真的不懂所謂的幸福是什麼 너는 아무렇지 않게 살아가야 하니까 因為你得若無其事地活下去

C# 檢驗身份證字號

出處:http://zh.wikipedia.org/wiki/身分證字號

網路上有很多更好的方式,但這個方法是我自己觀察出來的做法~ 參考嚕



身分證規則:
目前的中華民國身分證字號一共有十碼,包括起首一個大寫的英文字母與接續的九個阿拉伯數字
中華民國身分證字號中的英文字母是以初次登記的戶籍地來區分編號的,而首位數字則是拿來區分性別,男性為1、女性為2,與ISO 5218以及類似的《中華民國國家標準》CNS 8381《資訊交換-人類性別表示法》的用法相同。
中華民國身分證字號英文字首的編號規則數字如下:

然後再把每一個數字,依序乘上 1 9 8 7 6 5 4 3 2 1 1 ,再相加
n1\times 1+n2\times 9+n3\times 8 +n4\times 7+n5\times 6 +n6\times 5+n7\times 4 +n8\times 3+n9\times 2 +n10\times 1+n11\times 1
套入公式,結果為
1 \times 1+1 \times 9+1 \times 8 +2 \times 7+0 \times 6 +8 \times 5+6 \times 4 +3 \times 3+1 \times 2 +5 \times 1+8 \times 1
=1+9+8+14+40+24+9+2+5+8
=120
然後再除以10
\frac{120}{10}
如果整除,該組號碼有效
120 \equiv 0 \pmod{10}





視窗程式:













程式碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.VisualBasic;//要用Strings.InStr的必要宣告,還要加入參考

namespace ArrayCsharp
{
    public partial class ch7_4 : Form
    {
        public ch7_4()
        {
            InitializeComponent();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        int D1,D2,D3,D4,D5,D6,D7,D8,D9; //身分證後面9位數字
        string L1;//身分證第一個字母
        string res;
        private void button1_Click(object sender, EventArgs e)
        {
            string ID = textBox3.Text;
            int S,X2=0;
            L1=ID.Substring(0, 1).ToUpper();//將輸入身分證字號的第一個字母換成大寫
            ID = L1 + ID.Substring(1, 9);//取得大寫字母後,再將後面的數字取出來 接在L1後面變成ID
            textBox3.Text = ID;

            //將每一個位數放入D1~D9
            D1 = int.Parse(ID.Substring(1, 1));
            D2 = int.Parse(ID.Substring(2, 1));
            D3 = int.Parse(ID.Substring(3, 1));
            D4 = int.Parse(ID.Substring(4, 1));
            D5 = int.Parse(ID.Substring(5, 1));
            D6 = int.Parse(ID.Substring(6, 1));
            D7 = int.Parse(ID.Substring(7, 1));
            D8 = int.Parse(ID.Substring(8, 1));
            D9 = int.Parse(ID.Substring(9, 1));

            //(str1,str2)->傳回整數、指定一個字串在另一個字串中的起始位置。
            簡單說:IntStr是取得字母的位置
            S=Strings.InStr("ABCDEFGHIJKLMNPQRSTUVXYWZIO", L1);
          
            //檢查D1(第一個數字),來判斷是男是女
            MessageBox.Show("開始檢查");
            if (D1 == 1)
                MessageBox.Show("這人有雞雞", "檢查結果", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);


            else if (D1 == 2)
                MessageBox.Show("這人沒有雞雞", "檢查結果", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            else
                MessageBox.Show("人妖嗎?", "檢查結果", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

            //將第一個字母所對應的第一位數(X1)和第二位數(X2)做處理
            int X1=0;
            if (L1.Equals("A") || L1.Equals("B") || L1.Equals("C") || L1.Equals("D") ||
                L1.Equals("E") || L1.Equals("F") || L1.Equals("G") || L1.Equals("H") ||
                L1.Equals("I") || L1.Equals("J") || L1.Equals("K"))
                X1 = 1;
            else if (L1.Equals("L") || L1.Equals("M") || L1.Equals("N") || L1.Equals("P") ||
                L1.Equals("Q") || L1.Equals("R") || L1.Equals("S") || L1.Equals("T") || 
                L1.Equals("U") || L1.Equals("V"))
                X1 = 2;
            else if (L1.Equals("X") || L1.Equals("Y") || L1.Equals("W") || L1.Equals("Z") ||                 L1.Equals("I") || L1.Equals("O"))
                X1 = 3;

            if (S - 1 == 0||S-1!=0)
            {
                X2= S - 1;
            }
            else if (S - 1 == -1)
                X2= 0;

            int sum;
            sum = X1 +9 * X2 + 8 * D1 + 7 * D2 + 6 * D3 +
            5 * D4 + 4 * D5 + 3 * D6 + 2 * D7 + D8 + D9;
            CheckID(sum);

            MessageBox.Show("檢查結束");

        }

       static void CheckID(int N)
        {

            if ((N % 10) == 0)
                MessageBox.Show("格式正確");
            else
                MessageBox.Show("格式錯誤");

               

        }

    }
}


留言

這個網誌中的熱門文章

C# 裡 List用法

"需要有物件參考才能使用非靜態欄位、方法或屬性"的問題排除

達因筆 & 表面能 原理