首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

问:中国护照的有效期是怎么计算的?

  •  
  •   AifeiI · 92 天前 · 2381 次点击
    这是一个创建于 92 天前的主题,其中的信息可能已经有所发展或是发生改变。

    护照信息:

    • 出生日期
    • 签发日期
    • 有效期

    有效期根据不同护照类别是有 5 年或 10 年的这两个时长,而从看到过的护照来分析,有效期期限是在签发日期上加上有效时长后减一天,例如:

    时长:10 年
    签发:2019/01/20
    有效:2029/01/19
    

    但是昨天看到一个特别的例子:

    时长:5 年
    签发:2019/02/28
    有效:2024/02/28
    

    出现这个情况后,就在网上搜索公开的资料,但是没有看到相关的信息,有朋友知道这个有效期的期限是如何计算的?

    第 1 条附言  ·  92 天前

    问题重点是在得知 有效时长签发日期 的前提下,计算出 有效期

    第 2 条附言  ·  92 天前

    维基百科 - 中华人民共和国护照

    中华人民共和国护照法

    外交部 - 护照旅行证件

    关于护照的信息大多都有说明,唯独有效期的产生规则是没有找到的。我只有这一点没有可靠的资料。

    第 3 条附言  ·  92 天前

    目前使用的公式:

    有效期 = 起始日期 + (年限 * 365 + (年限 % 4))
    
    第 4 条附言  ·  88 天前

    之前提供的公式是不完整的,还是更新一下正确的校验思路,以免其他要走这路的同学跳坑里出不来

    公式核心思路是计算出横跨的年份一共有几个闰年,而目前新的验证方式是需要判断这几个闰年中,有多少个是包含2月29日这一天的。

    以原有的例子:

    时长:5 年
    签发:2019/02/28
    有效:2024/02/28
    
    闰年计数 = 签发日期 至 有效期 中年份为闰年的总数
    

    按照签证日期的月日是大于 2月29日 (A)还是小于等于(B),分 A 和 B ,两个区间,且有以下两个条件:

    • 当签证日期的年份是闰年,如果为签证日期在(A),那么第一个闰年是无效的,则需要在计算出的闰年计数中减一
    • 当有效期的年份是闰年,如果为签证日期在(B),那么最后一个闰年是无效的,则需要在计算出的闰年计数中减一
    • 以上思路是假设签证日期完整的时间为: yyyy/MM/dd 00:00:00 ,有效期完整的时间为: yyyy/MM/dd 24:00:00

    Kotlin 代码片段:https://gist.github.com/AifeiI/639e96017f60394e19355e8fa538a3f7

    34 回复  |  直到 2019-07-22 17:12:16 +08:00
        1
    netlous   92 天前 via iPhone
    无所谓吧,护照少于 6 个月基本就不怎么有用了,研究的这么细难道你想搞事情?😏
        2
    z42514   92 天前
    闰年加了一天?
        3
    psychoo   92 天前
    如果能再找到一个有效期在闰年 2 月的例子就清楚了
        4
    ladypxy   92 天前
    我护照到期日是 2 月 29。。。
        5
    9151   92 天前
    可能是年龄小就标 5 年?
        6
    psychoo   92 天前
    @ladypxy 签发日是?
        7
    yueqiuge   92 天前
    你想干什么
        8
    Sweden   92 天前 via Android
    十六岁以下的时候办护照就是五年
    曾经我的就是这样
        9
    AifeiI   92 天前
    是一个旅游签证的系统,需要对护照信息做核验(其实填错自己护照信息的人是不少的.....),然后遇到了这么一个例子,过不了机器核验(最后走了人工核验)。


    @ladypxy #4 你的签发日期是 3 月 1 日?
        10
    abc635073826   92 天前
    想起了堪比学生证的护照照片将伴随我十年
        11
    rshun   92 天前
    应该和身份证一样吧,根据年龄来,年龄越小,有效期越短,年龄越大,有效期越长,我猜测哦
        12
    TimePPT   92 天前 via iPhone
    和年龄,护照类型,办理护照时的身份证有效期都有关。
        13
    prondtoo   92 天前
    你问的是什么护照?因私还是因公还是外交护照?
        14
    jfdnet   92 天前
    洋洋洒洒一大段 竟然不知道楼主想要问什么 我要重新回去学语文了
        15
    AifeiI   92 天前
    @TimePPT #12 例如?

    @prondtoo #13 护照类别只决定了有效时长而已,我是想知道生成护照信息的时候,有效期这一项是怎么产生的。
        16
    well666   92 天前 via iPhone
    @jfdnet 就是有效期有的時候到期那年減一天,有的時候不減吧
        17
    TimePPT   92 天前
    @AifeiI 没啥例如的啊,自己去翻护照法
    http://www.gov.cn/jrzg/2006-04/29/content_271199.htm
        18
    MonoLogueChi   92 天前 via Android
    你需要再找一个签发是 2 月非 28 日,有效结束是闰年。一个签发日期是 2 月 28 日,有效结束是非闰年。

    我猜是 1 月 20 日先算到 2029 年的 2 月,然后再减去 1 月没过完的那几天。当结束年份是闰年 2 月的时候,因为有 29 天,所以会比其他情况多一天
        19
    AifeiI   92 天前
    @TimePPT #17 请你告诉我,护照发有说明有效期是怎么计算出来的吗?
        20
    AifeiI   92 天前
    @MonoLogueChi 这个信息是属于个人隐私,不是谁想要就能找到,所以只能找有没有官方的产生规则说明,可惜我目前没找到。
        21
    mxalbert1996   92 天前 via Android
    10 年=3652 天
    5 年=1826 天
    没什么问题
        22
    loveour   92 天前
    这个感觉触及到了知识盲点。不知道有没有人知道的?
        23
    ooxxcc   92 天前
    @AifeiI 要求上传护照首页照片做 ocr 不就行了……
        24
    zk8802   92 天前
    从手头能找到的样例出发,可以得到一个可行的公式:N == 5: 签发日期 + 365 * N + 1; N == 10: 签发日期 + 365 * N + 2。

    具体是不是如此就不清楚了。
        25
    zk8802   92 天前
    后面的 +1/+2 是 5 年 /10 年里面因为闰年而增加的天数。
        26
    ooxxcc   92 天前
    护照机读码(MRZ)区域使用 OCR-B 字体,OCR 做起来非常容易,然后 MRZ 的格式非常明确,可以从中分割出姓名、证件号、有效期(起止)
    以上部分信息还有校验和

    比让客户挨个填写要简单多了,还不容易出错
        27
    ooxxcc   92 天前
    上文 有效期(起止)应当改为 生日+有效期限
        28
    mxalbert1996   92 天前 via Android
    楼上说的没错,再补充一下,以五年为例,因为只多加一天,所以在这五年期间有两个 2 月 29 日的情况下(也是大多数情况)就会看起来是日期减了一天,十年同理。
        29
    AifeiI   92 天前
    @ooxxcc OCR 是有清晰度要求,以及不是 100%准确(实际你得到的照片还会以各种姿态出现,所以 OCR 只能应付正常情况)
        30
    ooxxcc   92 天前
    @AifeiI 是的,我们做的是证卡识读设备(机场用的那种),所以图片质量比较有保证,OCR 识别率没有问题。你的使用环境让客户上传就比较复杂了。
        31
    ooxxcc   92 天前
    @AifeiI
    不过可以考虑一下支付宝上传身份证的过程,通过一定的交互(比如 UI 上面加个框加个头像样式)引导提升用户上传的图片的质量。
        32
    AifeiI   92 天前
    @mxalbert1996 按照这个算是正确,目前就是用这个方式去应对,但没有其他资料佐证,比较没把握,所以先问问。
        33
    AifeiI   92 天前
    @mxalbert1996
    身份证的计算就好一些,有资料,虽然判定规则稍微比护照多一个步骤。

    @ooxxcc
    客户是上帝(给钱的都是大爷),提供 App 或者其他方式的交互只能作为一种途径,人工提交这一途径还是需要的。
        34
    AifeiI   88 天前
    可能有更好的计算方式,希望潜水的 dalao 分享分享😂
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2310 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 38ms · UTC 07:41 · PVG 15:41 · LAX 00:41 · JFK 03:41
    ♥ Do have faith in what you're doing.