编程(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代码的准确性,请点击:距离某天的时间 进行本实例源码下载
使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。 |