編程(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代碼的準確性,請點擊:距離某天的時間 進行本實例源碼下載
使用編程語言寫的程序,由于每條指令都對應計算機一個特定的基本動作,所以程序占用內存少、執行效率高。 |