Showing
2 changed files
with
40 additions
and
26 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