妖业蛋论坛

小妖 发表于 2007-1-3 15:21

[01-03] 安全期

首页上的那个安全期好象要过期了,嘿嘿

亦宁 发表于 2007-1-3 15:49

回复 #1 小妖 的帖子

:small_mrgreen:什么意思?

老孙 发表于 2007-1-3 16:20

回复 #2 当爱搁浅 的帖子

过期了想查的就不能查了!

evoleo 发表于 2007-1-3 16:55

随便测试了一个
2006 年 13 月:small_wink:

函数有些问题,我自己也搞不清楚了~
每年年底12月都不能计算。以后就好了~:small_wink:


这个安全期的函数就在这里,大家懂的帮看看~
[code]
<!-- 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.clientX+document.body.scrollLeft+10
                tooltip.style.pixelTop=event.clientY+document.body.scrollTop+10
                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=e.pageX+10
                tooltip.top=e.pageY+10
                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 ;

        //title of the calendar
        CalendarOuterHTML = CalendarOuterHTML + "<table border=0 cellspacing=0 cellpadding=3 id=Calendar" + CalendarIndex + ">";
        CalendarOuterHTML = CalendarOuterHTML + "<TR bgcolor=#FFCCCC><TD colspan=7 class=p2 align=center>";
        CalendarOuterHTML = CalendarOuterHTML + thisYear+' 年 ';
        CalendarOuterHTML = CalendarOuterHTML + thisMonth +' 月';
        CalendarOuterHTML = CalendarOuterHTML + "<TR bgcolor=#DADADA><TD width=18 class=p2>日<TD width=18 class=p2>一<TD width=18 class=p2>二<TD width=18 class=p2>三<TD width=18 class=p2>四<TD width=18 class=p2>五<TD width=18 class=p2>六";
        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=p2>";
                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=p2>";
                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=p2>";
        }
       
        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)<24 )
        {
                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;       
}

//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 LANGUAGE="javascript">
<!-- Hide
function killErrors() {
return true;
}
window.onerror = killErrors;
// -->
[/code]

页: [1]
飞鸟与摄影,张扬我个性!

Powered by Discuz! Archiver 7.0.0  © 2006-2009 Yaoyedan.com