转自:http://www.cnbruce.com/blog/showlog.asp?cat_id=5&log_id=569

编程是有用的。我今天算是真实感受到了。

我只能说:亏作者想得出来

其实,怎么说呢:没有做不到,只有想不到。

代码如下:
<HTML> <HEAD> <TITLE>女性安全期测试</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <style type="text/css"> <!-- a { text-decoration: none} a:hover { text-decoration: underline ;color:#0000ff} A:active { color: #FF0099} table{ font-family: "宋体"; font-size: 9pt} .nine-pt { font-family: "宋体"; font-size: 9pt} .inputform { border: 1px double; border-color: #000000; font-family: "宋体"; font-size: 9pt } .titletext { FONT-SIZE: 14.8px; FONT-FAMILY: "宋体"; LETTER-SPACING: 6px;} INPUT{background: #efefff; BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: #cccccc; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #cccccc; PADDING-BOTTOM: 1px; BORDER-TOP-COLOR: #cccccc; PADDING-TOP: 1px; HEIGHT: 18px; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #cccccc} --> </style> <script language="JavaScript"> <!-- Hide this script from old browsers -- if (!document.layers&&!document.all) event="test" function showtip2(current,e,text,index){ if (document.all&&document.readyState=="complete"){ eval("var tooltip=document.all.tooltip" + index + ";") //tooltip.innerHTML='<marquee style="border:1px solid black">'+text+'</marquee>' tooltip.innerHTML='' + text + '</TABLE>' tooltip.style.pixelLeft=event.x-195 tooltip.style.pixelTop=event.y-130 tooltip.style.visibility="visible" } else if (document.layers){ eval("var tooltip=document.tooltip" + index + ";") eval("var nstip=document.tooltip" + index + ".document.nstip" + index + ";") nstip.document.write('<b>'+text+'</b>') nstip.document.close() nstip.left=0 //currentscroll=setInterval("scrolltip(" + index + ")",100) tooltip.left=event.x-195 tooltip.top=event.y-130 tooltip.visibility="show" } } function hidetip2(index){ if (document.all) eval("document.all.tooltip" + index + ".style.visibility='hidden';"); else if (document.layers){ //clearInterval(currentscroll) eval("document.tooltip" + index + ".visibility='hidden';") } } function scrolltip(index){ eval("var nstip=document.tooltip" + index + ".document.nstip" + index + ";") if (nstip.left>=-nstip.document.width) nstip.left-=5 else nstip.left=150 } function montharr(m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11) { this[0] = m0; this[1] = m1; this[2] = m2; this[3] = m3; this[4] = m4; this[5] = m5; this[6] = m6; this[7] = m7; this[8] = m8; this[9] = m9; this[10] = m10; this[11] = m11; } var CalendarOuterHTML = ''; var Today = new Date(); var DaysPerMonth = 0; //Get the number of day in some month function GetDayPerMonth(year,month) { var monthDays = new montharr(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) monthDays[1] = 29; DaysPerMonth = monthDays[month]; } function GetCalendarOuterHTML(CalendarIndex,HaveLayer) { CalendarOuterHTML = ''; var thisYear = frmInput.txtYear.value; var thisMonth = parseInt(frmInput.txtMonth.value) + CalendarIndex - 1 ; //when thisMonth beyond 12 if (thisMonth > 12) { thisYear = parseInt(thisYear) + 1; thisMonth = thisMonth % 12; } //title of the calendar CalendarOuterHTML = CalendarOuterHTML + "<table border=0 cellspacing=0 cellpadding=3 align=right id=Calendar" + CalendarIndex + ">"; CalendarOuterHTML = CalendarOuterHTML + "<TR bgcolor=#84C1FF><TD colspan=7 class=nine-pt height=15 align=center>"; CalendarOuterHTML = CalendarOuterHTML + thisYear+' 年 '; CalendarOuterHTML = CalendarOuterHTML + thisMonth +' 月'; CalendarOuterHTML = CalendarOuterHTML + "<TR bgcolor=#CAE4FF><TD width=18 class=nine-pt>日<TD width=18 class=nine-pt>一<TD width=18 class=nine-pt>二<TD width=18 class=nine-pt>三<TD width=18 class=nine-pt>四<TD width=18 class=nine-pt>五<TD width=18 class=nine-pt>六"; CalendarOuterHTML = CalendarOuterHTML + "<TR bgcolor=#FFFFFF>"; //Get the day of the first Day var firstDay = new Date(Date.UTC(frmInput.txtYear.value,(parseInt(frmInput.txtMonth.value)-2+CalendarIndex),1)); testMe = firstDay.getDate(); if (testMe == 2) firstDay.setDate(0); startDay = firstDay.getDay(); //display empty cells before the first day of the month column = 0; for (i=0; i<startDay; i++) { CalendarOuterHTML = CalendarOuterHTML + "<TD width=18 class=nine-pt>"; column++; } //display the grids in the calendar var Lastday = new Date(Date.UTC(frmInput.txtYear.value,(parseInt(frmInput.txtMonth.value)-1),frmInput.txtDay.value)) GetDayPerMonth(thisYear,thisMonth-1) for (i=1; i<=DaysPerMonth; i++) { CalendarOuterHTML = CalendarOuterHTML + "<TD width=18 class=nine-pt>"; var color = "blue"; //default color without layer displayed //Get layer HTML if (HaveLayer) { var ThisDay = new Date(Date.UTC(thisYear,thisMonth-1,i)) var msPerDay = 24 * 60 * 60 * 1000 ; var mensesCyc = parseInt(frmInput.txtMinMensesCyc.value); //Min menses Cycle var msDiff = ThisDay.getTime() - Lastday.getTime(); dayDiff = Math.floor(msDiff / msPerDay); //get the days between thisday and lastday dayRemainder = (dayDiff % mensesCyc + mensesCyc) % mensesCyc; //if (i<2) {alert(ThisDay.toLocaleString()); alert(Lastday.toLocaleString()); alert(dayDiff);alert(dayRemainder);} var tooltips =""; //content of layer if (dayRemainder>=0 && dayRemainder<=4) { color = "#FF9900"; tooltips = "这是月经期,要注意经期卫生,当然也要“节欲”,避免性事哦!" } if (dayRemainder>=5 && dayRemainder<=(mensesCyc-20)) { color = "#009933"; tooltips = "这是安全期,性事一般不会受孕,您放心吧!"; } if (dayRemainder>=(mensesCyc-19) && dayRemainder<=(mensesCyc-10)) { color = "#FF3300"; tooltips = "这是危险期,亦称排卵期,性事受孕可能性大,千万要注意哦!"; } if (dayRemainder>=(mensesCyc-9) && dayRemainder<=(mensesCyc-1)) { color = "#009933"; tooltips = "这是安全期,性事一般不会受孕,您放心吧!"; } iLayerIndex = 40*CalendarIndex + i ; //index of layer tooltips = "<TABLE border=0 cellPadding=2 cellSpacing=1 width=100% align=center bgcolor=#008080>" + "<TR><TD style=BACKGROUND-COLOR:white;COLOR:" + color + ";FONT-FAMILY:宋体;FONT-SIZE:9pt;TEXT-DECORATION:none> " + tooltips + "</TD></TR></TABLE>"; CalendarOuterHTML = CalendarOuterHTML + "<div id=/"tooltip" + iLayerIndex + "/" style=/"position:absolute;visibility:hidden;clip:rect(0 150 150 0);width:150px;background-color:seashell/">"; CalendarOuterHTML = CalendarOuterHTML + "<layer name=/"nstip" + iLayerIndex + "/" width=/"1000px/" bgColor=/"seashell/" height=/"500px/"></layer></div>"; CalendarOuterHTML = CalendarOuterHTML + "<a href=/"#/" onMouseOver=/"showtip2(this,event,'" + tooltips + "'," + iLayerIndex + ")/" onMouseOut=/"hidetip2(" + iLayerIndex + ")/">"; } CalendarOuterHTML = CalendarOuterHTML + "<FONT COLOR=/"" + color + "/">" + i + "</FONT>"; column++; if (column == 7) { CalendarOuterHTML = CalendarOuterHTML + "<TR bgcolor=#FFFFFF>"; column = 0; } } //display empty cells after the final day of the month var FinalDay = new Date(Date.UTC(frmInput.txtYear.value,(parseInt(frmInput.txtMonth.value)-2+CalendarIndex),DaysPerMonth)); testMe = FinalDay.getDate(); if (testMe == 2) FinalDay.setDate(0); EndDay = FinalDay.getDay(); for (i=EndDay; i<6; i++) { CalendarOuterHTML = CalendarOuterHTML + "<TD width=18 class=nine-pt>"; } CalendarOuterHTML = CalendarOuterHTML + "</TABLE>"; } //to check input errors and display both calendars function DisplayCalendar() { //check whether the date is legal if (frmInput.txtYear.value<1900||isNaN(frmInput.txtYear.value)) { alert("请输入合法年份!") frmInput.txtYear.focus(); return false; } if (isNaN(frmInput.txtMonth.value) || frmInput.txtMonth.value<1 || frmInput.txtMonth.value>12) { alert("请输入合法月份!") frmInput.txtMonth.focus(); return false; } GetDayPerMonth(frmInput.txtYear.value,frmInput.txtMonth.value-1) if (isNaN(frmInput.txtDay.value) || frmInput.txtDay.value<1 || frmInput.txtDay.value>DaysPerMonth) { alert("请输入合法日期!") frmInput.txtDay.focus(); return false; } var Lastday = new Date(Date.UTC(frmInput.txtYear.value,(parseInt(frmInput.txtMonth.value)-1),frmInput.txtDay.value)) if ((Today.getTime() - Lastday.getTime())<0) { alert("请输入正确的上次月经时间(不能早于当前时间)!") frmInput.txtYear.focus(); return false; } //check input if(isNaN(frmInput.txtMinMensesCyc.value)) { alert("请输入数字!") frmInput.txtMinMensesCyc.focus(); return false; } if(parseInt(frmInput.txtMinMensesCyc.value)>40 || parseInt(frmInput.txtMinMensesCyc.value)<22 ) { alert("您输入的最短月经周期与标准月经周期相差太大,程序无法测试,请仔细核对。/n/n如输入确无问题请咨询医生!") frmInput.txtMinMensesCyc.focus(); return false; } if(isNaN(frmInput.txtMaxMensesCyc.value) || parseInt(frmInput.txtMaxMensesCyc.value)<parseInt(frmInput.txtMinMensesCyc.value)) { alert("输入错误,请仔细核对您的输入周期!"); frmInput.txtMaxMensesCyc.focus(); return false; } //display calendars GetCalendarOuterHTML(1,1); document.all.Calendar1.outerHTML = CalendarOuterHTML; GetCalendarOuterHTML(2,1); document.all.Calendar2.outerHTML = CalendarOuterHTML; MM_showHideLayers('Layer1','','show'); } //Initialize function InitialCalendar() { //Initialize the date input boxes frmInput.txtYear.value = Today.getYear(); frmInput.txtMonth.value = Today.getMonth()+1; frmInput.txtDay.value = Today.getDate(); //Initialize the calendars GetCalendarOuterHTML(1,0); document.all.Calendar1.outerHTML = CalendarOuterHTML; GetCalendarOuterHTML(2,0); document.all.Calendar2.outerHTML = CalendarOuterHTML; //Set focus frmInput.btnCalculate.focus(); } // -- End Hiding Here --> </script> <script language="JavaScript"> <!-- <!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; οnresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); // --> function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && document.getElementById) x=document.getElementById(n); return x; } function MM_showHideLayers() { //v3.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; } obj.visibility=v; } } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> </HEAD> <BODY BGCOLOR=#FFFFFF οnlοad="javascript:InitialCalendar();MM_preloadImages('img/close_o.gif')"> <script language="JavaScript"> <!-- if (window.Event) document.captureEvents(Event.MOUSEUP); function nocontextmenu() { event.cancelBubble = true event.returnValue = false; return false; } function norightclick(e) { if (window.Event) { if (e.which == 2 || e.which == 3) return false; } else if (event.button == 2 || event.button == 3) { event.cancelBubble = true event.returnValue = false; return false; } } document.oncontextmenu = nocontextmenu; // for IE5+ document.onmousedown = norightclick; // for all others //--> </script> <div id="Layer1" style="position:absolute; left:205px; top:155px; width:337px; height:307px; z-index:2; visibility: hidden"> <table width="360" border="0" cellspacing="1" cellpadding="3" align="center" height="250" bgcolor="#FFCCFF"> <tr> <td bgcolor="#FFCCFF" align="center" class="titletext"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="95%" class="titletext" align="center">结果显示</td> <td width="5%"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','img/close_o.gif',1)"><img name="Image1" border="0" src="img/close_d.gif" width="11" height="11" onClick="MM_showHideLayers('Layer1','','hide')"></a></td> </tr> </table> </td> </tr> <tr> <td bgcolor="#EEF7FF" align="center"> <table width="360" border="0" cellspacing="0" cellpadding="0" align="center"> <tr valign="top"> <td height="66" class="nine-pt" width="169" valign="top"> <table border="0" cellspacing="0" cellpadding="3" id=Calendar1> </table> </td> <td height="66" class="nine-pt" width="191" valign="top"> <table border="0" cellspacing="0" cellpadding="3" align="right" id=Calendar2> </table> </td> </tr> </table><br> <table width="256" border="0" cellspacing="0" cellpadding="0" align="center"> <tr class="nine-pt"> <td width="89" height="2"> <table width="77" border="0" cellspacing="0" cellpadding="0"> <tr class="nine-pt"> <td bgcolor="#009933" width="30"> </td> <td width="47"> &nbsp;安全期</td> </tr> </table> </td> <td width="85" height="2"> <table width="77" border="0" cellspacing="0" cellpadding="0"> <tr class="nine-pt"> <td bgcolor="#FF3300" width="30"> </td> <td width="47"> &nbsp;危险期</td> </tr> </table> </td> <td width="82" height="2"> <table width="77" border="0" cellspacing="0" cellpadding="0"> <tr class="nine-pt"> <td bgcolor="#FFCC00" width="30"> </td> <td width="47"> &nbsp;月经期</td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </div> <table border="1" cellspacing="0" cellpadding="2" align="center" bordercolor="#666699"> <tr> <td bordercolor="#FFFFFF" align="center" class="titletext" bgcolor="#EEF7FF"><font color="#0066CC">女性安全期测试</font></td> </tr> <tr> <td bordercolor="#FFFFFF" align="center"> <form method="post" action="#" name=frmInput οnsubmit="javascript:DisplayCalendar();"> <table width="360" border="0" cellspacing="1" cellpadding="2" bordercolorlight="#666666" align="center" bordercolordark="#FFFFFF" bordercolor="#000000"> <tr bgcolor="#D2E9FF"> <td rowspan="2" class="nine-pt" height="14" width="80" align="center"> 月经周期设置</td> <td class="nine-pt" height="12" colspan="3" width="266"> 最短月经周期 &nbsp; <input type="text" name="txtMinMensesCyc" size="2" maxlength=2 class="inputform" value="28"> 天 </td> </tr> <tr bgcolor="C6EB4C"> <td colspan="3" class="nine-pt" height="2" width="266" bgcolor="#D2E9FF">最长月经周期 &nbsp; <input type="text" name="txtMaxMensesCyc" size="2" maxlength=2 class="inputform" value="28"> 天 </td> </tr> </table> <table width="360" border="0" cellspacing="1" cellpadding="2" bordercolorlight="#666666" align="center" bordercolordark="#FFFFFF" bordercolor="#000000"> <tr bgcolor="#D2E9FF"> <td width="80" class="nine-pt" height="2" align="center" bgcolor="#D2E9FF">上次月经时间</td> <td colspan="3" class="nine-pt" height="2" width="266" bgcolor="#D2E9FF"> <input type="text" name="txtYear" size="4" maxlength=4 class="inputform"> 年 <input type="text" name="txtMonth" size="2" maxlength=2 class="inputform"> 月 <input type="text" name="txtDay" size="2" maxlength=2 class="inputform"> 日 </td> </tr> </table> <table width="359" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td height="38" bgcolor="#D2E9FF"> <div align="center"> <input type="button" name="Submit3" value="设置完成" class="nine-pt" onClick="javascript:DisplayCalendar();"> <input type="button" name="btnCalculate" value="开始计算" class="nine-pt" onClick="javascript:DisplayCalendar();"> <input type="reset" name="reset" value="重新输入" class="nine-pt"> </div> </td> </tr> </table> </form> <span class="nine-pt"><font color="#999999">帮助:请先设置好周期后和时间后,按设置完成,再按开始计算</font></span><font color="#999999">。</font><br> </td> </tr> </table> <div align="center" class="nine-pt"></div> </BODY> </HTML>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

女性安全期测试--亏作者想得出来相关推荐

  1. 女性安全期测试(JS)

    < HTML > < HEAD > < TITLE > 女性安全期测试 </ TITLE > < META   HTTP-EQUIV =" ...

  2. 128g固态学计算机,第一次见到这种固态硬盘,128G容量显示500G,奸商亏你想得出来!...

    原标题:第一次见到这种固态硬盘,128G容量显示500G,奸商亏你想得出来! 硬盘是电脑的存储硬件,它的好坏直接决定了电脑的性能,目前市场上的电脑硬盘有机械硬盘.固态硬盘.机械固态混合硬盘三大类,主流 ...

  3. 女性安全期计算机软件,女性安全期计算器

    女性安全期计算器一款计算女性安全期的小工具.女性的排卵日期一般在下次月经来潮前的14 天左右.下次月经来潮的第1 天算起,倒数14 天或减去14 天就是排卵日,排卵日及其前5 天和后4 天加在一起称为 ...

  4. pygame的mask测试_作者:李兴球

    """ mask测试,mask就是膜或罩的意思,可以从一个图片创建一个mask,但要转换alpha的,否则就失去了意义. 我们可以想像给一个透明的图片覆一层膜,也就是ma ...

  5. 90%测试猿都想学的Jmeter技能,你get吗?

    01. 前言 jmeter 这个工具既可以做接口的功能测试,也可以做自动化测试,还可以做性能测试,其主要用途就是用于性能测试.但是,有些公司和个人,就想用 jmeter 来做接口自动化测试. 你有没有 ...

  6. 想在公众号上做一个测试软件,公众号测试新功能想要扭转乾坤?

    近期,公众号测试了新功能,文章数据将直接以小字形式展示文章标题下方,根据图文排序的不同,显示的数据也不一样. 排在第一和第二的两篇文章底部可以看到文章的阅读量.点赞数.分享这三项数据,往下是阅读量.点 ...

  7. 转载--测试员要想实现自己的职业发展目标,离不开这5点

    很多工作了几年的测试人员都会产生迷惘,随着经验的累积和技能的提升,会有一个瓶颈期.未来应该往哪个方向发展,怎样才能取得卓越和成功. 由于人生阅历不同,价值观不同,每个人对卓越和成功的理解不同.&quo ...

  8. 想去阿里大厂去面试测试工程师?想月薪15k?这篇文章一定对你有所帮助

    前言 我大学同学成功拿下阿里大厂年薪 30W+ 测试开发岗位 Offer,顺利完成从手工测试工程师到测试开发的逆袭,薪资翻倍(涨幅 100%+).我问他是怎么面试,听了他的话后,我有所感悟,写下了这篇 ...

  9. [网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记

    补充学习资料: TK13大神Windows PE专栏 https://blog.csdn.net/u013761036/article/category/6401236 TK13大神Windows对抗 ...

最新文章

  1. OSS 下载延迟或超时
  2. Linux 内核中的 GCC 特性(zz)
  3. 获取NT的admin权限的方法
  4. 【Web安全】从xxe到phar反序列化
  5. WEBApp-搭建Android开发环境
  6. 小程序 报错 err code: 40029, errmsg: 'invalid code, hints: [ req_id: JhIay6yFe-XN5A3 ]'
  7. 将您的SQL Server工作负载迁移到PostgreSQL –第4部分
  8. 如何监控oracle的索引是否使用
  9. Vue.js实现可配置的登录表单
  10. C语言把字符串转变为数字
  11. 40个增长和管理你的WordPress网站的有用博客工具
  12. 视频加密技术的实与破解
  13. 使用Glide制作圆形图片
  14. 多元时间序列预测 —— 向量自回归(VAR)
  15. 三、网页中的超链接(hyperlink)
  16. 雅西高速交警列16处危险路段 司机需小心行驶
  17. 正数的原码,反码,补码
  18. 技术选型系列 -- Redis VS Memcached
  19. 手把手教你读财报----银行业---第五课
  20. 移动web端使用腾讯地图实现定位功能

热门文章

  1. 路径规划算法:基于飞蛾扑火算法的路径规划算法- 附代码
  2. ftp服务器登陆密码如何显示,ftp服务器登陆原始密码
  3. 对于手机自带电子邮件的使用
  4. WPS 关闭 wpscenter.exe 服务
  5. 贷款违约预测学习笔记
  6. 精雕细琢!阿里大师53天悉心打磨出来的MyBatis+设计模式架构指南
  7. 还有这种操作?既是黑客又是居家男的阿里安全工程师
  8. 十二星座女子--金牛座
  9. dpkg:错误:另外一个进程已经为 dpkg 状态数据库 加锁
  10. 第8章第2节:制作企业宣传册的封面幻灯片 [PowerPoint精美幻灯片实战教程]