Showing
2 changed files
with
39 additions
and
25 deletions
... | @@ -4,31 +4,43 @@ var qs = require('querystring'); | ... | @@ -4,31 +4,43 @@ var qs = require('querystring'); |
4 | var fs = require('fs'); | 4 | var fs = require('fs'); |
5 | const { METHODS } = require('http'); | 5 | const { METHODS } = require('http'); |
6 | 6 | ||
7 | +function calculateRemainTime(resFromServer){ // 남은 시간 계산하는 함수 | ||
8 | + const dateNow = new Date(); | ||
9 | + const dateBusdeparture = | ||
10 | + new Date(dateNow.getFullYear(), dateNow.getMonth(), dateNow.getDate(), | ||
11 | + resFromServer[0]*1, resFromServer[1]*1, 0); | ||
12 | + | ||
13 | + var gapSec = (dateBusdeparture.getTime() - dateNow.getTime())/1000; | ||
14 | + var gapHour = Math.floor(gapSec / 60 / 60); | ||
15 | + var gapMin = Math.floor((gapSec - gapHour*3600) / 60); | ||
16 | + | ||
17 | + var ans = gapHour+"시간 "+gapMin+"분 이상"; | ||
18 | + return ans; | ||
19 | +} | ||
20 | + | ||
7 | function makeTimetable(resFromServer){ // Timetable 표를 만드는 함수 | 21 | function makeTimetable(resFromServer){ // Timetable 표를 만드는 함수 |
8 | - var busArrivalTime = | 22 | + var remainTime = calculateRemainTime(resFromServer); |
23 | + var ETD_min_H = resFromServer[0]; | ||
24 | + var ETD_min_m = resFromServer[1]; | ||
25 | + var ETD_max_H = resFromServer[2]; | ||
26 | + var ETD_max_m = resFromServer[3]; | ||
27 | + | ||
28 | + var ETD = | ||
9 | `<table border="3" width="400"> | 29 | `<table border="3" width="400"> |
10 | <th> Index</th> | 30 | <th> Index</th> |
11 | <th> 출발 예정시간</th> | 31 | <th> 출발 예정시간</th> |
12 | <th> 남은 시간</th> | 32 | <th> 남은 시간</th> |
13 | -`; | ||
14 | - var lenRes = resFromServer.length; | ||
15 | - | ||
16 | - for (index = 0; index < lenRes; index+=2){ | ||
17 | - let m = resFromServer[index]; | ||
18 | - let M = resFromServer[index+1]; | ||
19 | - busArrivalTime += ` | ||
20 | <tr align="center"> | 33 | <tr align="center"> |
21 | - <td>${(index+2)/2} 번째 버스</td> | 34 | + <td> text입력하기 </td> |
22 | - <td>${m} ~ ${M}</td> | 35 | + <td> ${ETD_min_H}:${ETD_min_m} ~ ${ETD_max_H}:${ETD_max_m} </td> |
23 | - </tr>`; | 36 | + <td> ${remainTime} </td> |
24 | - } | 37 | + </tr> |
25 | - busArrivalTime += ` | ||
26 | </table>`; | 38 | </table>`; |
27 | 39 | ||
28 | - return busArrivalTime; | 40 | + return ETD; |
29 | }; | 41 | }; |
30 | 42 | ||
31 | -function makeTTWebpage(busNum, busArrivalTime){ // Timetable 표를 바탕으로 TT 페이지를 만드는 함수 | 43 | +function makeTTWebpage(busNum, ETD){ // Timetable 표를 바탕으로 TT 페이지를 만드는 함수 |
32 | var templateTimeTable = | 44 | var templateTimeTable = |
33 | ` | 45 | ` |
34 | <!doctype html> | 46 | <!doctype html> |
... | @@ -47,7 +59,7 @@ function makeTTWebpage(busNum, busArrivalTime){ // Timetable 표를 바탕으로 | ... | @@ -47,7 +59,7 @@ function makeTTWebpage(busNum, busArrivalTime){ // Timetable 표를 바탕으로 |
47 | <h2>${busNum} BUS Time Table</h2> | 59 | <h2>${busNum} BUS Time Table</h2> |
48 | </div> | 60 | </div> |
49 | <div style="padding:0 0 0 20px;"> | 61 | <div style="padding:0 0 0 20px;"> |
50 | - ${busArrivalTime} | 62 | + ${ETD} |
51 | </div> | 63 | </div> |
52 | <br> | 64 | <br> |
53 | <br> | 65 | <br> |
... | @@ -58,12 +70,13 @@ function makeTTWebpage(busNum, busArrivalTime){ // Timetable 표를 바탕으로 | ... | @@ -58,12 +70,13 @@ function makeTTWebpage(busNum, busArrivalTime){ // Timetable 표를 바탕으로 |
58 | <script> | 70 | <script> |
59 | var date = new Date(); | 71 | var date = new Date(); |
60 | var yyyy = date.getFullYear(); | 72 | var yyyy = date.getFullYear(); |
61 | - var mm = date.getMonth() + 1; | 73 | + var mm1 = date.getMonth() + 1; |
62 | var dd = date.getDate(); | 74 | var dd = date.getDate(); |
63 | var hh = date.getHours(); | 75 | var hh = date.getHours(); |
76 | + var mm2 = date.getMinutes(); | ||
64 | 77 | ||
65 | - document.write(yyyy+"년 "+mm+"월 "+dd+"일 "); | 78 | + document.write(yyyy+"년 "+mm1+"월 "+dd+"일 "); |
66 | - document.write(hh+"시 "+mm+"분 기준"); | 79 | + document.write(hh+"시 "+mm2+"분 기준"); |
67 | </script> | 80 | </script> |
68 | </div> | 81 | </div> |
69 | </body> | 82 | </body> |
... | @@ -85,8 +98,8 @@ module.exports = function(app) | ... | @@ -85,8 +98,8 @@ module.exports = function(app) |
85 | var busNum = queryData.busNum; | 98 | var busNum = queryData.busNum; |
86 | 99 | ||
87 | // 서버로부터 응답받는 배열의 길이는 항상 짝수여야 한다. (버스 1대당 출발예정 최소 + 최대시간 1개씩) | 100 | // 서버로부터 응답받는 배열의 길이는 항상 짝수여야 한다. (버스 1대당 출발예정 최소 + 최대시간 1개씩) |
88 | - var resFromServer = ['1:30', '1:45', '2:00', '2:15', '2:30', '2:45']; | 101 | + var resFromServer = ['1', '30', '1', '45']; |
89 | - var busArrivalTime = makeTimetable(resFromServer); | 102 | + var ETD = makeTimetable(resFromServer); // Estimated time of Depature |
90 | 103 | ||
91 | // server 완성되면 해당 IP로 request | 104 | // server 완성되면 해당 IP로 request |
92 | // request.post( | 105 | // request.post( |
... | @@ -102,7 +115,7 @@ module.exports = function(app) | ... | @@ -102,7 +115,7 @@ module.exports = function(app) |
102 | // } | 115 | // } |
103 | // ); | 116 | // ); |
104 | 117 | ||
105 | - var templateTimeTable = makeTTWebpage(busNum, busArrivalTime); | 118 | + var templateTimeTable = makeTTWebpage(busNum, ETD); |
106 | res.send(templateTimeTable); | 119 | res.send(templateTimeTable); |
107 | }); | 120 | }); |
108 | } | 121 | } | ... | ... |
... | @@ -22,12 +22,13 @@ | ... | @@ -22,12 +22,13 @@ |
22 | <div style="padding:0 0 0 20px;"><script> | 22 | <div style="padding:0 0 0 20px;"><script> |
23 | var date = new Date(); | 23 | var date = new Date(); |
24 | var yyyy = date.getFullYear(); | 24 | var yyyy = date.getFullYear(); |
25 | - var mm = date.getMonth() + 1; | 25 | + var mm1 = date.getMonth() + 1; |
26 | var dd = date.getDate(); | 26 | var dd = date.getDate(); |
27 | var hh = date.getHours(); | 27 | var hh = date.getHours(); |
28 | + var mm2 = date.getMinutes(); | ||
28 | 29 | ||
29 | - document.write(yyyy+"년 "+mm+"월 "+dd+"일 오늘 운행하는 버스들 "); | 30 | + document.write(yyyy+"년 "+mm1+"월 "+dd+"일 오늘 운행하는 버스들 "); |
30 | - document.write("( "+hh+"시 "+mm+"분 기준 )"); | 31 | + document.write("( "+hh+"시 "+mm2+"분 기준 )"); |
31 | </script> </div> | 32 | </script> </div> |
32 | 33 | ||
33 | <ul> | 34 | <ul> | ... | ... |
-
Please register or login to post a comment