星期四, 8月 11, 2011

統一編號驗證程式

/// 

/// 檢查統一編號是否正確
/// 回傳值:0:正確 1:字串長度不符 2:輸入的字串不能轉成數字 3:驗證錯誤
///
/// "BusiNo">要檢查的統一編號號碼
public int CheckBusiNo(string BusiNo)
{
int vResult = 0, vStrLength = 0, vTempNum = 0, vTotalNum = 0;
int[] vBaseNum = new int[8] { 1, 2, 1, 2, 1, 2, 4, 1 };
vStrLength = BusiNo.Length;
if (vStrLength != 8)
{
vResult = 1; //輸入的字串長度不是8碼
}
else
{
if (CheckIsNumber(BusiNo))
{
for (int i = 0; i < 8; i++)
{
vTempNum = Convert.ToInt32(BusiNo.Substring(i, 1)) * vBaseNum[i];
vTotalNum += ((vTempNum / 10) + (vTempNum % 10));
}
if (vTotalNum % 10 == 0 || (vTotalNum % 10 == 9 && Convert.ToInt32(BusiNo.Substring(6, 1)) == 7))
{
vResult = 0;
}
else
{
vResult = 3;
}
}
else
{
vResult = 2; //統一編號必須是全數字,不可以有文字
}
}
return vResult;
} //End CheckBusiNo

轉型第一發...身份證號碼驗證程式碼

很久以前有用DELPHI寫過一樣的東西,這次是改用C#重寫一次...
反正BLOG開了也是開了...就拿來放一些程式上的小片段吧

/// 

/// 檢查身分證字號是否正確
/// 回傳值:0:正確 1:首碼不符 2:姓別碼不符 3.驗證碼驗證錯誤 4.字串長度不正確
///
/// "IDNo">要檢查的身分證號碼
public int CheckIDNo(string IDNo)
{
int HeadNo = 0, vPlus = 0, vBodyNo = 0, vResultNo = 0, vResult = 0, vStrLength = 0;
vStrLength = IDNo.Length;
if (vStrLength != 10)
{
vResult = 4; //輸入的字串長度不是10碼
}
else
{
string HeadStr = IDNo.Substring(0, 1).ToUpper();
string[] HeadCode = new string[26] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
int[] HeadNumber = new int[26] { 10, 11, 12, 13, 14, 15, 16, 17, 34, 18, 19, 20, 21, 22, 35, 23, 24, 25, 26, 27, 28, 29, 32, 30, 31, 33 };
for (int vCount = 0; vCount <= 25; vCount++)
{
vResult = 1; //先預設首碼檢查不正常
if (HeadStr == HeadCode[vCount])
{
HeadNo = ((HeadNumber[vCount] % 10) * 9 + (HeadNumber[vCount] / 10));
vResult = 0; //因為已經在陣列中找到對應的字串了,所以把回傳值設回0,表示通過首碼檢查
break;
}
}
HeadStr = IDNo.Substring(1, 1);
if ((HeadStr == "1") || (HeadStr == "2"))
{
for (int i = 1; i <= 8; i++)
{
vPlus = 9 - i;
vBodyNo += Convert.ToInt32(IDNo.Substring(i, 1)) * vPlus; //依不同位數計算並加總
}
vBodyNo = vBodyNo + HeadNo; //把首碼計算的結果跟碼身計算的結果加總
vResultNo = 10 - vBodyNo % 10; //計算驗證值
if (vResultNo == Convert.ToInt32(IDNo.Substring(9, 1)))
{
vResult = 0; //如果驗證值跟驗證碼相同時傳回 0
}
else
{
vResult = 3; //驗證不符
}
}
else
{
vResult = 2; //姓別碼不符,必須是 1(男)或 2(女)
}
}
return vResult;
} //End CheckIDNo

星期日, 9月 14, 2008

心情亂記

趁著颱風天沒什麼事做,在網路上找到一部只看過最後一集的連續劇(或者應該說是偶像劇吧)~天堂來的孩子
其實當初會看到這部片完完全全就是不小心看到的,一開始也只是被這部片的女主角(陳怡蓉)給吸引才看的;因為平常本來就沒什麼看類似節目的習慣,所以開始看的時候就已經是最後二集了;看完之後比較有印象的部份也只有主題曲〔沿海地帶〕很好聽,女主角長得不錯看這麼一點點印象,也不知道為什麼,今天突然想到就上網找到這部片,看著片中的小男主角〔海星〕跟男主角〔張星禾〕之間的一些對話,說真的,我哭了
這一年多以來,因為我自己的不爭氣,我變得一無所有,甚至於連我最最牽腸掛肚的懷恩我都沒有辦法陪著他一起長大,我一直在想,未來懷恩長大之後會用什麼樣的眼光來看待我這個一無是處的老爸?是憐憫?還是不屑?
從小到大,我身邊的人灌輸給我的觀念就是〔你是男生,所以再怎麼苦都要忍下來,不管受什麼責難,流多少眼淚,都只能往自己肚裡吞〕,就在短短的一年多前,不管在外面受到什麼樣的挫折,只要一回到家能看到懷恩的笑容,我就可以重新燃起奮鬥的意志,但現在,因為我自己在許多事情處理上的失當,我失去了在我生命中最重要,而且是唯一的支柱,這一路走來,我真的累了
沒有人支持的人生路,走來,很累

星期六, 8月 16, 2008

北京奧運棒球賽之我見

話說,北京奧運應該是最後一屆將棒球列為正式項目的奧運會了;因此,這屆奧運棒球賽相對於前幾屆來說,得牌的意義將更形重要;而我國的棒球代表隊在出發前也信心滿滿的表示目標至少要進前四強,從首戰對荷蘭的表現看來,似乎打進前四強共不是那麼的遙不可及,國人也都沉浸在可望得牌的期待之中;然而從中日戰的第九局開始一直到對大陸打到十二局下結束為止,國人透過轉播看到的恐怕不是喜悅的氣氛,相反的比較接近於絕望吧?
先來說說我對中日一役的看法好了:基本上這場比賽在開打之前,我就不是很看好中華隊可以擊敗日本隊,原因有二:
一.根本實力的差距:中日之間的棒球水準本就存在著一段不算小的差距,不管是就運動人口上的差異還是技術水準上的差別來說,日本毫無疑問的是現階段亞洲霸主,甚至於跟美國相比都不會有太大的落差;這一點可以從各項國際賽事以及美日兩國職棒的交流賽史中得到驗證;加上由於日本棒球的平均水準較高,一二線選手之間的技術差異並不大的情況之下,即使少了像是松阪大輔,福留孝介,松井榢頭央,鈴木一朗等等在MLB奮戰的明星選手助陣,僅憑日本本土職業球員和業餘好手就足以組成一支一流勁旅;相對來說,台灣在人才深度這方面就顯得遠遠不及日本了;少了王建民,郭泓志,陳鏞基,胡金龍,林威助等人的中華隊,給予外界的信心就是偏低;事實上,扣除上述好手之後的中華隊在實力上也的確是打了一個很大的折扣;
二.求勝的意志不足:所謂的求勝意志不足指的並不是目標僅在於打進前四強,而是在於賽前的各項準備工作漫不經心;看看美日等強國,早在確定奧運參賽隊伍之前就已經有計劃的針對幾個有可能取得參賽權的國家進行情報蒐集,反觀台灣,一直到即將出發前的幾個月都還對參實各國的選手有著一定程度的陌生,加上業餘選手在集訓時也不見教練團有針對國內選手較明顯的缺失進行加強訓練,整個感覺就像是打算到奧運場上再來見招拆招,如此的心態如何能夠打出好成績?
然而,看完中日大戰的前八局之後,我突然有種〔這場球賽有機會贏球〕的感覺!不管是投手還是打者,看得出來表現得都不比日本來得差,而且如果能保持僅僅一分的落後進入九局下半的話,屆時日本隊的壓力必然比中華隊大上許多;但萬萬沒想到在九局上半,一切都變了;原本表現極為精彩的中華健兒們好像突然著了魔一樣,完全被日本隊壓著打,和前八局相比,彷彿是二支完全不同的球隊一樣,結果就以五分之差見負;總結來說,中日之役中華隊給了我八局的好球,雖然最後的結果是輸球,但其實失落感並不是那麼樣的大;接下來的對大陸一役就完全不同了!
記得在比賽前,大陸隊被歸類於陪打的等級;甚至於連大陸的總教練自己都評估能在奧運拿下一勝就已經是完美的結果了;台灣這方面甚且覺得對大陸一戰必定是輕騎過關,但比賽一開打之後卻發現完全不像大家想的那樣,中華隊〔遇弱則更弱〕的傳統又在這場比賽中發揮得淋漓盡致!打者打不出安打,投手壓不住陣腳的結果就是延長到十二局之後,在再見失誤中輸掉這場比賽
或許有人會說,前一天對日本隊的比賽因雨延後一小時,加上對大陸的比賽又是當天最早的時段,二場比賽間的休息時間過短,使得選手體力不堪負荷而造成表現失常;但如果將比賽過程攤開來細看,個人覺得輸球的主因卻是二個字:輕敵!或許我不是棒球專業,但是光從中華隊打者在場上的表現來看,跟前一場對日本的比賽相比之下,打者對投手的纏功不見了,一個個都是急於進攻,一心只想一棒擊垮對方的投手,卻忘了棒球場上愈是急於建功的一方往往就會被對方掌握住節奏進而處於不利的局面,到了比賽的後半段時,由於比數一直無法拉開,自覺實力高過大陸甚多的中華隊打起球來愈加心急,對於場上各種狀況的處理也就更加容易出現疏失,最後的結果就是在十二局下半因為再見失誤而輸掉這場不該輸的比賽
當然,許多人會覺得我的說法完全是結果論,而且沒有考慮到中華隊休息不足的不利因素;但是攤開中華隊歷來的各場賽事可以發現類似今天這場比賽的情況其實並不少見;只是今天對手是大家覺得不可能會輸的大陸隊,加上一些場外的因素而使得比賽結果令人更加難以接受罷了!但我覺得,只要中華隊在面對弱隊時的心態一天沒有改變,爾後在國際賽事中〔遇弱則更弱〕的傳統印象將永遠跟著中華隊的身影!期盼國內棒壇相關人士在經過這場令人傷心的比賽之後能夠真正的痛定思痛,重新提振國內棒球的水準,在往後的國際賽事中打出真正不辱〔國球〕稱號的好比賽!

星期六, 7月 26, 2008

又一次意外的好運

話說.....我又回來了....哈
這次又是因為統一發票的事
剛剛對了一下這一期(5,6月份)的發票
我竟然破天荒的中了一千元
加上前二期各中了一張二百元
這半年來統一發票已經中了1400元了
希望在工作上也能像統一發票一樣運氣逐漸好轉才好