1. 程式人生 > >驗證身份證是否滿18歲

驗證身份證是否滿18歲

由於專案中需要校驗使用者輸入的身份證是否滿18歲,且網上的方法魚龍混雜,故自定義校驗方法如下:

  • 第一種方法:
 //驗證身份證是否成年這個方法中不做身份證校驗,請確保傳入的是正確身份證
 + (BOOL)verifyIDCardWithAdult:(NSString *)card{

//身份證:****年**月**日
     //年
     NSString *year = [card substringWithRange:NSMakeRange(6,4)];
     NSInteger  birthdayYear = [year integerValue];
     //月
     NSString
*month = [card substringWithRange:NSMakeRange(10,2)]; NSInteger birthdayMonth = [month integerValue]; //日 NSString *day = [card substringWithRange:NSMakeRange(12,2)]; NSInteger birthdayDay = [day integerValue]; //獲取當前時間,日期: NSDate *currentDate = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"YYYY/MM/dd"
]; NSString *dateString = [dateFormatter stringFromDate:currentDate]; NSRange range0 = [dateString rangeOfString:@"/"]; //年 NSString *year0 = [dateString substringToIndex:range0.location]; NSInteger nowYear = [year0 integerValue]; //月 NSString *month0 = [dateString substringWithRange:NSMakeRange(5
, 2)]; NSInteger nowMonth = [month0 integerValue]; //日 NSString *day0 = [dateString substringWithRange:NSMakeRange(8, 2)]; NSInteger nowDay = [day0 integerValue]; //具體校驗: //年 if (nowYear - birthdayYear < 18){ return false; }else if (nowYear - birthdayYear == 18){ //月 if (nowMonth < birthdayMonth){ return false; }else if (nowMonth == birthdayMonth){ //日 if (nowDay < birthdayDay){ return false; } } } return true; }
  • 第二種方法:
+ (BOOL)verifyIDCardHadAdultII:(NSString *)card{

    //身份證:****年**月**日
    //年
    NSString *year = [card substringWithRange:NSMakeRange(6,4)];
    int  birthdayYear = [year intValue];
    birthdayYear+=18;

    //月日
    NSString *monthDay = [card substringWithRange:NSMakeRange(10,4)];
    int  birthdayMonth = [monthDay intValue];
    NSString *birthdayDay = [NSString stringWithFormat:@"%d%d",birthdayYear,birthdayMonth];

    //獲取當前時間,日期:
    NSDate *currentDate = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYYMMdd"];
    NSString *dateString = [dateFormatter stringFromDate:currentDate];

    //年
    NSString *year0 = [dateString substringWithRange:NSMakeRange(0, 4)];
    int  nowYear = [year0 intValue];
    //月日
    NSString *month0 = [dateString substringWithRange:NSMakeRange(4, 4)];
    int  nowMonth = [month0 intValue];
    NSString *current = [NSString stringWithFormat:@"%d%d",nowYear,nowMonth];


    //比較
    if([birthdayDay compare:current options:NSNumericSearch] == NSOrderedDescending){

        return false;
    }

    return true;
}

相關推薦

驗證身份證是否滿18

由於專案中需要校驗使用者輸入的身份證是否滿18歲,且網上的方法魚龍混雜,故自定義校驗方法如下: 第一種方法: //驗證身份證是否成年這個方法中不做身份證校驗,請確保傳入的是正確身份證 + (

php 驗證 身份證號碼 合法性 相容 (15位 和 18身份證號碼)

<?php header("Content-Type: text/html; charset=utf-8"); echo "<p align='center'> <form method='post'>

身份證校驗及其18判定(包含18身份證和15位身份證)

// IDCardVerifyDemo.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> #include <string> #include <time.h>

laravel5之自定義驗證規則15位18身份證驗證

1,app\Providers\AppServiceProvider.php在檔案中的boot方法中新增 namespace App\Providers; use Validator; use Illuminate\Support\ServiceProvider; clas

判斷身份證是否為18-25之間的女孩

/*任務04.身份證號碼中出生年月的提取 1、實訓目的 掌握字串函式的使用方法。 2、實訓內容 (1)任務描述 編寫一個程式:輸入一個身份證號,判斷該號碼對應的人是否是18至25歲女孩,是則輸出”yes

【jq】驗證15位和18身份證號碼的正則表示式

function validateIdCard(idCard) { //15位和18位身份證號碼的正則表示式 var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(

php 驗證身份證有效性,根據國家標準GB 11643-1999 15位和18位通用

//驗證身份證是否有效 function validateIDCard($IDCard) { if (strlen($IDCard) == 18) { return check18IDCard($IDCard); } elseif ((strl

iOS驗證身份證號的有效性(僅18位號)

驗證身份證號的有效性(僅18位號) 概述 驗證身份證號的有效性。這裡僅支援18位身份證號的驗證,因為15位的身份證號碼基本上以及沒有了,筆者認為可以忽略。 通過正則表示式來判斷。附:正則表示式30分鐘入門教程。 下文中用到的正則表示式字串為"^[1-

驗證身份證號碼的正確性

判斷 號碼 match function inpu func urn input alert id為input的id// 判斷身份證是否正確$(‘#iscard‘).blur(function() { var card = $.trim($("#iscard").va

java驗證身份證號碼是否有效源代碼

numeric turn info 末尾 open 範圍 是否 驗證 pri 原文:http://www.open-open.com/code/view/1420373343171 1、描述 用java語言判斷身份證號碼是否有效,地區碼、出身年月、校驗碼等驗證算法

Hdu 1201 18生日

blog pre scanf 生日 宋體 desc font cnblogs 是不是 18歲生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total

hdu_1201 18生日

int print color clu include scanf 生日 amp main #include<stdio.h> int main(){ int n,a,b,c,sum,i,j; scanf("%d",&n); wh

18生日

ron tdi con blog pro clas == problem lag 問題 D: 18歲生日 時間限制: 1 Sec 內存限制: 32 MB[提交][狀態][討論版] 題目描述 zzq的18歲生日就要到了,他當然很開心,可是他突然想到一個問題,是不是每個人從出

EXCEL規範數據輸入教程-驗證身份證

excelEXCEL日常工作中經常會輸入身份證號碼,一不小心就可能出錯,今天大飛老師就分享這樣一個示例EXCEL規範數據輸入教程-驗證身份證號。 我們首先要保證在EXCEL中能正確輸入身份證號碼(PS:身份證號18位,直接輸入就會變成科學計數法形式1.235E+17),可以通過兩種方式。方式一:單引號+身份證

jquery驗證身份證號碼、手機號碼

htm tee false 檢測 包括 ber == 香港 bst // 驗證身份證 function IsUserCard(idNo) { if (idNo.length != 0) { if (!checkCard(idNo)) {

18高中生逆襲之路!沒錯就是這麽優秀!

學習思想18歲高中生逆襲之路! 今年我剛上大一,我現在是這樣想的,但是我認為我不能一成不變,學習是要看市場的,(我一般會去各大網站去搜索我心儀職位的能力要求),我認為:首先要對自己有一個好的定位,這就需要廣泛了解知識和行業要求,註意這裏不是學習。當定位自己適合和喜歡的職位以後,去網上找到該職位的

js驗證身份證號碼是否合規

blog i++ num sub 包括 功能 iso errcode split 需求:最近要做實名驗證的功能,但是驗證身份證號碼和身份證圖片的接口不想短信,比較貴,所以之前我們要驗證嚴謹一點,參考了網上關於驗證身份證號碼的代碼,總結一下 代碼: //驗證身份證號碼 fu

JS驗證身份證

變量 是否 無法 trim text 有效 浙江 ram 直接 話不多說,直接看代碼 JS部分 /** * 身份證15位編碼規則:dddddd yymmdd xx p * dddddd:地區碼 * yymmdd: 出生年月日 * xx: 順序類編碼,無法確定

php 驗證身份證

div als check subst 特殊 number cti turn for function validation_filter_id_card($id_card){ if(strlen($id_card)==18){ ret

HDU--1201--18生日

Gardon的18歲生日就要到了,他當然很開心,可是他突然想到一個問題,是不是每個人從出生開始,到達18歲生日時所經過的天數都是一樣的呢?似乎並不全都是這樣,所以他想請你幫忙計算一下他和他的幾個朋友從出生到達18歲生日所經過的總天數,讓他好來比較一下。  Input 一個數T,後面