根据输入的年月日,自动判断生日日期

根据出生日期判断你的性格及星座 根据生日判断星座 设计思路 ​ 首先设置三个列表,分别存储生日的日子、星座、标志——接着用"birth"变量接受用户输入的出生年月日并删除输入数据开头与结尾处的“空格”——设置变量“cbir”并存储被split函数切割后的列表元素——取列表中的第二个、第三个元素并保存到变量“cmonth”,“cdate”中——定义函数sign,并设置参数(conth、cdate),用“if”函数判断:把输入接收到的日期数据,与对应的“sdate”列表中的元素进行大小比较,如果小于“sdate”列表中的元素,则输出当前元素对 阅读详情

aspx页面代码:

<input type="text" id="txtYear" runat="server" class="input_b" value="" style="width: 20px"

                    onblur="NLtoCSRQ($$('txtYear'), $$('txtMonth'), $$('txtDay'),'txtCSRQ')"/>
                年
                <input type="text" id="txtMonth" runat="server" class="input_b" value="" style="width: 20px"
                    onblur="NLtoCSRQ($$('txtYear'), $$('txtMonth'), $$('txtDay'),'txtCSRQ')" />
                月
                <input type="text" id="txtDay" runat="server" class="input_b" value="" style="width: 20px"
                    onblur="NLtoCSRQ($$('txtYear'), $$('txtMonth'), $$('txtDay'),'txtCSRQ')" />
                日
                <input name="txtCSRQ" type="text" id="txtCSRQ" onblur="CSRQtoNL(this,'txtYear','txtMonth','txtDay')" runat="server"
                    onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'%y-%M-%d'})" class="Wdate"

    style="width: 80px" onchange="ReDate(this);" maxlength="10" />


js代码:

//年月日的判断
function NLtoCSRQ(_year, _month, _day, csrqid) {
    //调用方法
    $$(csrqid).value = getStrDate(_year, _month, _day, csrqid);
}

//年月日的判断。根据多条件任意组合 
function getStrDate(_year, _month, _day, csrqid) {

    var date = "";
    //什么一个时间对象
    var d = new Date();
    //获取当前日期
    var stryear = d.getFullYear();
    var strmonth = d.getMonth() + 1;
    var strday = d.getDate();
    //获取传入的时间
    var year = _year.value.Trim();
    var month = _month.value.Trim();
    var day = _day.value.Trim();

    //判断年月日是否为数字
    if (!isIntParse(year)) {
        year.value = "";
        return;
    }
    if (!isIntParse(month)) {
        month.value = "";
        return;
    }
    if (!isIntParse(day)) {
        day.value = "";
        return;
    }

    //判定输入的年月日
    //年份不能大于当前年,不能小于1900年
    if (parseInt(year) < 0 || (2012 - (parseInt(year))) < 1900) {
        year.value = "";
        return;
    }
    //月份不能大于100
    if (parseInt(month) < 0 || parseInt(month) > 100) {
        month.value = "";
        return;
    }
    //日期不能大于100天
    if (parseInt(day) < 0 || parseInt(day) > 100) {
        day.value = "";
        return;
    }

    //表示年份不为空,月份和日期为空
    if (year != "" && month == "" && day == "") {
        if (year == stryear) { date = 0; }
        else {
            date = (stryear - year) + "-" + strmonth + "-" + strday;
        }
    }
    //表示月份不为空,年份和日期为空
    if (year == "" && month != "" && day == "") {
        var d1 = new Date();
        d1.setMonth(d1.getMonth() - month);
        date = d1.getFullYear() + "-" + (d1.getMonth() + 1) + "-" + d1.getDate();
    }

    //表示日期不为空,年份和月份为空
    if (year == "" && month == "" && day != "") {
        //如果当前日期大于输入的日期则直接想减,否则需要进行月份的判定等
        if ((strday - day) > 0) {
            date = (stryear) + "-" + strmonth + "-" + (strday - day);
        } else {
            var d = subDays(day);
            date = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        }
    }

    //表示年份和月份不为空,日期为空
    if (year != "" && month != "" && day == "") {
        var d = new Date();
        d.setMonth(d.getMonth() - month);
        date = (d.getFullYear() - year) + "-" + (d.getMonth() + 1) + "-" + d.getDate();
    }

    //表示月份和日期不为空,年份为空
    var dy = "";
    if (year == "" && month != "" && day != "") {
        date = getStrMonth(month, day);
    }

    //表示年份、月份和日期都不为空
    if (year != "" && month != "" && day != "") {
        var d = new Date(Date.parse(getStrMonth(month, day).replace(/-/g, "/")));
        date = (d.getFullYear() - year) + "-" + (d.getMonth() + 1) + "-" + d.getDate();
    }

    /////不能以年份日期不为空,月份为空 作为条件返回日期
    return date;
}

//通过月份和日期返回具体的日期
function getStrMonth(month, day) {
    var date;
    var d = subDays(day);

    if (parseInt(month / 12) == 0) {

        if ((d.getMonth() - month) < 0) {
            date = (d.getFullYear() - 1) + "-" + (12 - (month - d.getMonth()) + 1) + "-" + d.getDate();
        } else
            date = d.getFullYear() + "-" + (d.getMonth() - month + 1) + "-" + d.getDate();
    } else {
        if ((d.getMonth() - month % 12) < 0) {
            date = (d.getFullYear() - parseInt(month / 12)) + "-" + (12 - (month % 12 - d.getMonth()) + 1) + "-" + d.getDate();
        } else
            date = (d.getFullYear() - parseInt(month / 12)) + "-" + ((d.getMonth() - (month % 12)) + 1) + "-" + d.getDate();
    }
    return date;
}

//通过相差的天数返回具体时间
function subDays(day) {
    var d = new Date();
    timer = d.getTime() - (day * 24 * 60 * 60 * 1000);
    d.setTime(timer);
    return d;
}


这是反显示的js代码:

//根据选择的时间自动判断相差的年月日 作者:杨吉林
function CSRQtoNL(dd, year, month, day) {
    //获取当前文本框的值
    var dd = dd.value;

    //声明一个时间对象
    var da = new Date();

    //如果传人对象为空则返回
    if (dd == "") return;

    //转换为日期格式
    var d = new Date(Date.parse(dd.replace(/\-/g, "\/")));

    //如果输入的日期大于当前日期则提示错误信息
    if (d > da) alert("时间不能大于当前时间");

    //如果月份为0则自动转为12月份
    var se = da.getMonth() == 0 ? 12 : da.getMonth();

    //如果为0表示应该就是上一年的年份
    if (se == 0) {
        da.getFullYear() = da.getFullYear() - 1;
    }

    //如果当前天数答应输入的日期天数
    if ((da.getDate() - d.getDate()) >= 0) {
        $$(day).value = da.getDate() - d.getDate();
        if (se >= d.getMonth()) {
            $$(month).value = se - d.getMonth();
            $$(year).value = da.getFullYear() - d.getFullYear()
        }
        else {
            //表示和选择的年份一样
            if ((da.getFullYear() - 1) == d.getFullYear()) {
                $$(year).value = 0;
            } else {
                $$(year).value = ((da.getFullYear() - 1) - d.getFullYear());
            }
            $$(month).value = d.getMonth() - se;
        }
    } else {
        var se = da.getMonth() == 0 ? 12 : da.getMonth();
        //如果为0表示应该就是上一年的年份
        if (se == 0) {
            da.getFullYear() = da.getFullYear() - 1;
        }

        //计算当前相差的天数(判断是否瑞年)
        if (se == 2) {
            if (((da.getFullYear()) % 4 == 0 && (da.getFullYear()) % 100 != 0) || (da.getFullYear()) % 400 == 0) {
                $$(day).value = 29 - (d.getDate() - da.getDate());
            } else {
                $$(day).value = 28 - (d.getDate() - da.getDate());
            }
        }

        //计算当前相差的天数(判断是否大小月)
        if ((se + 1) == 4 || (se + 1) == 6 || (se + 1) == 9 || (se + 1) == 11) {
            $$(day).value = 30 - (d.getDate() - da.getDate());
        } else { $$(day).value = 31 - (d.getDate() - da.getDate()); }

        //如果月份相等
        if ((se - 1) >= d.getMonth()) {
            $$(month).value = (se - 1) - d.getMonth();
            $$(year).value = da.getFullYear() - d.getFullYear()
        }
        else {
            if ((da.getFullYear() - 1) == d.getFullYear()) {
                $$(year).value = 0;
            } else {
                $$(year).value = ((da.getFullYear() - 1) - d.getFullYear());
            }
            $$(month).value = d.getMonth() - se;
        }
    }
}


特别提示:文本框的是一个js日期控件,大家可以去网上搜索下载,这里就不贴出来了。

通过身份证号获取用户生日 作者:吱韩菌 开发工具:Visual Studio 2015 撰写时间:2019-6-26 在使用的众多软件中,都会涉及到填写用户的基本信息,无论是流程过于繁杂、还是填写的信息较多,都会影响用户对该款软件的体验,从而会下降用户对它的好感度。 今天要介绍的是注册中,在输入框中用户身份证号后自动获取到用户的生年月日,减少用户填写信息的时间。 下面主要讲解的是JS部分,使用的插件为:jquery... 阅读详情

相关推荐

基于身份证号解析出生日期与性别的VB.NET实现

为了实现信息聚合与职责分离,应创建一个专用的数据载体类PersonInfo,用于封装从身份证中提取的所有关键属性。

weixin_28988985的博客 985

当天是否生日的判断方法比较

基础的生日判断逻辑

一只小码渣的博客 1182

当windows安装git时出现以下错误提示

Windows安装Git时出现多个系统配置设置失败错误(exit code 4294967295),提示包括无法设置textconv、LFS过滤器和SSL等配置项。关键问题在于scalar.exe版本不兼容,系统提示"该版本的scalar.exe与你运行的Windows版本不兼容"。解决方案是检查程序版本是否正确,下载与Windows系统兼容的正确版本重新安装即可。

沧澜的博客 1875

【ASP】判断是否为日期类型

<% somedate="10/30/99" response.write(IsDate(somedate)) %>

weixin_33815613的博客 1367

CNN经典网络模型(二):AlexNet简介及代码实现(PyTorch超详细注释版)

CNN经典网络模型之一:AlexNet,本文包含其简介及代码,在PyTorch中实现,进行超详细注释,适合新生小白阅读学习~

qq_43307074的博客 2万+

Windows 10/11下Drive Composer Pro 2.9.0完整安装与连接ACS880变频器实战教程

本文详细介绍了在Windows 10/11系统上安装Drive Composer Pro 2.9.0并连接ACS880变频器的完整教程。从系统环境准备、软件安装到许可证配置,再到USB、蓝牙和以太网三种连接方式的实战操作,帮助工业自动化工程师快速掌握ABB变频器的调试技巧。

weixin_32956805的博客 528

时间函数的应用

Date 函数描述:返回当前系统日期。语法DateDateAdd 函数描述:返回已添加指定时间间隔的日期。 语法DateAdd(interval, number, date)interval: 必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。 number: 必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。 da

网络文档(Lonz) 2149

[Unity Demo]从零开始制作空洞骑士Hollow Knight第四集:制作更多的敌人

大家好久不见,终于放完中秋假期可以回自己家里打代码了,上一期我介绍了为什么和如何导入2D toolkit以及制作一个完整的敌人(就是那只蚊子包括了精灵,动画,状态机行为以及脚本)现在不妨趁热打铁制作更多的敌人。

dangoxiba的博客 1974

asp.net 判断是否是日期格式,判断是否是长日期格式,短日期格式,时间判断,日期判断,全部格式

#region 判断日期     ///   /// 判断日期的日期部分格式   ///   /// 输入的日期的日期部分字符串   /// bool   public bool isDateTime(string dateStr)   {       bool _isDate = false;         string matchStr = "";          matchStr +

lingdu_YY的专栏 987

广工计组f4b 8位12指令微程序CPU设计实验报告(内含可通过代码以及波形图)

实验目的:模型机是计算机的缩细模型,通过它可以理解计算机整机的结构和功能,理解CPU,存储器,中断控制器,接口的结构及实现逻辑和各部件之前的接口关系。本实验是设计一个8位模型计算机。:一条机器指令可以分解成一个微操作序列,这些微操作是计算机最基本的,不可再细分的操作。:在微程序控制的计算机中。将控制部件向执行部件发出的各种控制命令成为微命令,它是构成控制序列的最小单位。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作微命令的执行过程。2.:微指令是若干微命令的集合。

weixin_63692154的博客 4705

告别SquareLine!用免费的NXP GUI-Guider为海思3516AV300开发LVGL界面(附完整移植流程)

本文详细介绍了如何利用免费的NXP GUI-Guider工具为海思Hi3516AV300开发LVGL界面,包括环境配置、代码移植和性能优化等全流程实战指南。特别针对二维码组件缺失等常见问题提供解决方案,帮助开发者零成本构建高效嵌入式GUI系统。

weixin_28292761的博客 416

ASP技巧(3)

 用TDC建立自己的数据库格式较长text型数据无法在Asp页面中取出的解决办法[图文] 用ASP控制Flash计算ASP页面的载入时间页面延迟的两个简单方法将ASP生成的内容写入响应流中最有效的方法如何使用asp创建dsn?ASP中巧用Response属性清除浏览器历史记录代码怎样读取一个文本文件的内容?不离开页面刷新数据得到表中字段属性代码在红蜻蜓中实现多房间页面之间传递元素的办法转换文本为超

rzwince2的专栏 708

[QMT量化交易小白入门]-七十一、十年回测ETF动量策略,超额年化收益率为10.6%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1857

根据身份证号绑定出生日期和性别

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具和关键技术:Visual Studio 2015,JavaScript 作者:金建勇 撰写时间:2019年7月4日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 在这几天做项目的过程中又做了不少功能,虽然大多数是小功能,但是...

依然的博客 676

JavaFx 教程

JavaFx 教程

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 784

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# 根据身份证号码判断出生日期和性别

18位的身份证,前面六位代表了你户籍所在地,第七位到第十四位代表了你的出生年月,第十五位到第十七为代表了你的性别(偶数为女,奇数为男),根据这一信息,我在系统开发的录入员工的身份证后控件焦点转移时根据身份证号码获得生日和性别。   用C#写的代码如下: /// /// 在控件验证 textBox_IdentityCard 的 Validated事件中定义身份证号码的合法性并根据身份证号码得到生日和性别 /// private vo.

fangyuan621的专栏 3988

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

输入你的出生年月日,测你的星座,大家都来试试吧

#import int main(int argc, const char * argv[]) {          @autoreleasepool {                  NSMutableString * birthday;                  NSLog(@"请输入你的出生年月日,格式为:yyyymmdd")

u012894362的专栏 2140

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

用Python实现星座查询:从生日自动判断你的星座

本文介绍了一个用Python实现星座判断的简洁程序。程序基于星座的日期分界标准,通过列表存储12星座的起始日期和符号,接收用户输入的生日并进行分割处理。核心判断函数通过比较日期与分界点来确定星座,可扩展为添加输入验证、星座特征等功能。这个项目展示了如何将日常逻辑转化为代码,适合编程初学者学习列表操作和条件判断等基础知识。

dhhdhdhjj的博客 456

sql server 根据身份证号计算出生日期和年龄的存储过程

我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /*********************************************** 根据身份证号计算出生日期和年龄 Date:2017-10-15 Author:xzl 条件:身份证号码 返回:出生日期和年龄 ***********************...

weixin_30693183的博客 2369

android自定义出生日期输入框

android自定义出生年月输入框

keke921231的专栏 5424

注册界面生日(日期)js

jQuery.noConflict(); jQuery(function ($) { var $birthYear = $('.gbiaps_birthday_year'); var year = new Date().getFullYear(); $('' + (year) + '').appendTo($b

xizai2012的专栏 2777

根据身份证号码获取出生日期

const getBirthdayByIdNO=(IdNO:string)=>{ let birthday = ""; if (IdNO.length===18) { birthday = IdNO.substr(6,8); return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); }; if(IdNO.length===15){ birthday = "19"+IdNO.substr(6,6); retur.

wangshang1320的博客 738

js出生日期和年龄联动

function setAge(){ //获取出生日期 var birthday=document.getElementsByName("birthday")[0].value; if(trim(birthday) != ""){ //出生日期不是空字符串 var age = document.getElementsByName("age")[0];/

videa1949的博客 235

C/C++题|牛客网BC14出生日期输入输出

通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。

wacanda的博客 331

根据身份证号自动显示生日和性别

【代码】根据身份证号自动显示生日和性别。

literature1688的博客 306

Js编写注册信息的年月日插件

@Js编写注册信息的年月日插件 Js编写注册信息的年月日插件 在注册信息的时候,会有填写生日的一项,一般情况下都是用下拉菜单,也有少部分网站用<input type=“date” …>对象,但是这个对象有的浏览器是不支持显示的。所以需要用到<select…>对象制作一个下拉列表,这也是大多数网站使用的方法。 难点 在使用编写一个下拉列表很简单,通过循环放进年月日就好。但是其中包含了一个用户体验的问题:在闰年选择29天的时候,你要是选错了年份,改成了平年,还是29天,那就不对了,或者你

sinat_38678369的博客 468
上一篇: 神奇的jQuery
下一篇: c# 怎么动态修改webservice的地址和端口 动态修改配置文件
make1828
博客等级 码龄19年 60粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值