|           编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。 【实例名称】 利用JS计算距离某天的时间 【实例描述】 距离某天的时间一般用于提醒特别重大的日子,如建国、结婚纪念日等。本例以建国日为标准,学习如何获取距离某天的时间。 【实例代码】 <html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页-本站(www.xue51.com)</title>
</head>
<body bgcolor="#fef4d9" onLoad="startclock()">
<SCRIPT LANGUAGE="JavaScript">
//基本变量的定义
var timerID;
var timerRunning = false;
var today = new Date();
var startday = new Date();
var secPerDay = 0;
var minPerDay = 0;
var hourPerDay = 0;
var secsLeft = 0;
var secsRound = 0;
var secsRemain = 0;
var minLeft = 0;
var minRound = 0;
var minRemain = 0;
var timeRemain = 0; //停止定时器的方法
function stopclock()
{
        if(timerRunning)
                clearTimeout(timerID);         timerRunning = false;
}
//开始定时器的方法
function startclock()
{
        stopclock();
        showtime1();
}
//计算时间的方法
function showtime1()
{
startday = new Date("Oct 20, 1949 00:00 EDT");  
//创建初始时间
        startday.setYear("1949");           
//设置年份
        today = new Date();                 
//获取当前时间
        secsPerDay = 1000 ;                 
//最终转换为毫秒
        minPerDay = 60 * 1000 ;             
//每分钟的毫秒
        hoursPerDay = 60 * 60 * 1000;       
//每小时的毫秒
        PerDay = 24 * 60 * 60 * 1000;       
//每天的毫秒         /* Seconds */
        secsLeft = (today.getTime() - 
startday.getTime()) / minPerDay;
//距今天的分钟数
        secsRound = Math.round(secsLeft); 
//四舍五入
        secsRemain = secsLeft - secsRound;
        secsRemain = (secsRemain < 0) ? secsRemain = 
60 - ((secsRound - secsLeft) * 60) : secsRemain = 
(secsLeft - secsRound) * 60;
        secsRemain = Math.round(secsRemain); 
//计算取分钟后剩余的秒数         /* 分钟*/
        minLeft = ((today.getTime() - 
startday.getTime()) / hoursPerDay);
//距今天的小时数
        minRound = Math.round(minLeft); 
//四舍五入
        minRemain = minLeft - minRound;
minRemain = (minRemain < 0) ? minRemain = 60 - 
((minRound - minLeft) * 60) : minRemain = 
((minLeft - minRound) * 60);
        minRemain = Math.round(minRemain - 0.495); 
 //计算取小时后剩余的分钟数         /* 小时 */
        hoursLeft = ((today.getTime() - 
startday.getTime()) / PerDay);
//距今天的天数
        hoursRound = Math.round(hoursLeft);
//四舍五入
        hoursRemain = hoursLeft - hoursRound;
        hoursRemain = (hoursRemain < 0) ? 
hoursRemain = 24 - ((hoursRound - hoursLeft) * 24)  : 
hoursRemain = ((hoursLeft - hoursRound) * 24);
        hoursRemain = Math.round(hoursRemain - 0.5);
//计算取天数后剩余的小时数         /* 天 */
        daysLeft = ((today.getTime() - 
startday.getTime()) / PerDay);
//距今天的天数
        daysLeft = (daysLeft - 0.5);
        daysRound = Math.round(daysLeft);
//四舍五入     
        daysRemain = daysRound;         /* Time */
        day_rem = " 天, "
        hour_rem = " 小时, "
        min_rem = " 分, "
        sec_rem = " 秒"
        timeRemain = daysRemain + day_rem + hoursRemain 
+ hour_rem + minRemain + min_rem + secsRemain + sec_rem;
        document.up.myTxt.value = timeRemain;
 //使用文本框输出内容
        timerID = setTimeout("showtime1()",1000);
//每隔1秒更新下时间
        timerRunning = true;
} </SCRIPT>
<FORM NAME="up">
<INPUT TYPE="text" NAME="myTxt" SIZE="47" VALUE="">
</FORM>
<P>
<FONT SIZE=+1 FACE="Arial">
距离建国已经
</FONT>
</body>
</html>
 
 【运行效果】   【难点剖析】 本例的重点在于时间(天、时、分、秒)的获取。在“showtimel”方法中,使用“new Date("Oct 1,1949 00:00EDT”)”创建了一个建国日期对象,又使用“new Date()获取当前的日期对象。最后分别获取两个时间的天数、小时,分、秒的间隔,并在文本框中显示最后的计算结果。
 【源码下载】 为了JS代码的准确性,请点击:距离某天的时间 进行本实例源码下载  
 使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。 
 |