Toggle navigation
Toggle navigation
This project
Loading...
Sign in
teamPARK
/
holiday-counter-recommend-activity
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
박지환
2022-05-20 18:31:08 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f24a9999abbc68e35b3363265b0885e3fcc4d36b
f24a9999
1 parent
c35dca9c
Get recent data automatically
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
62 additions
and
33 deletions
server.js
views/data.ejs
server.js
View file @
f24a999
...
...
@@ -32,13 +32,11 @@ app.set("view engine", "ejs");
// To get today date by using Date
function
getTodayDate
()
{
var
today
=
new
Date
();
var
year
=
today
.
getFullYear
();
var
month
=
(
"0"
+
(
today
.
getMonth
()
+
1
)).
slice
(
-
2
);
var
day
=
(
"0"
+
today
.
getDate
()).
slice
(
-
2
);
var
dateString
=
year
+
"-"
+
month
+
"-"
+
day
;
// return "2022-10-04"; // 테스트용 날짜를 입력하세요. 테스트가 끝나면 주석처리 하세요. ex) 2022-09-12, 2022-09-15, 2022-10-04
return
dateString
;
}
...
...
@@ -54,15 +52,15 @@ function getModifiedDate(locdate) {
}
// To get remaining days from locdate
function
getDate
(
dateName
,
locdate
)
{
function
get
Left
Date
(
dateName
,
locdate
)
{
var
today
=
new
Date
(
getTodayDate
());
// today date
var
holiday
=
new
Date
(
getModifiedDate
(
locdate
));
// holiday date
var
diffDate
=
today
.
getTime
()
-
holiday
.
getTime
();
var
dday
=
Math
.
abs
(
diffDate
/
(
1000
*
3600
*
24
));
console
.
log
(
dateName
+
"까지 "
+
dday
+
"일 남았습니다."
);
return
dday
;
}
// To change parameter
function
changeParams
(
year
,
month
,
operation
)
{
queryParams
=
"?"
+
"solYear"
+
"="
+
year
;
queryParams
+=
"&"
+
"solMonth"
+
"="
+
month
;
...
...
@@ -70,16 +68,16 @@ function changeParams(year, month, operation) {
requestUrl
=
url
+
operation
+
queryParams
;
}
// To
initialize datas when calling webpage
function
init
(
)
{
// Intialize Year, Month
var
date
=
getTodayDate
().
split
(
"-"
);
year
=
date
[
0
]
;
month
=
date
[
1
];
operation
=
"getHoliDeInfo"
;
console
.
log
(
year
,
month
);
changeParams
(
year
,
month
,
operation
);
// Get data from holiday api
// To
check is this left holiday
function
cmpDate
(
date
)
{
var
today
=
getTodayDate
().
replace
(
/
\-
/g
,
""
);
if
(
Number
(
today
)
<=
Number
(
date
))
{
return
true
;
}
}
// To get data from holiday api by using parmas
function
getData
()
{
request
.
get
(
requestUrl
,
(
err
,
res
,
body
)
=>
{
if
(
err
)
{
console
.
log
(
"err => "
+
err
);
...
...
@@ -88,24 +86,18 @@ function init() {
// Read url success
var
result
=
body
;
var
xmlToJson
=
convert
.
xml2json
(
result
,
{
compact
:
true
,
spaces
:
4
});
console
.
log
(
result
);
console
.
log
(
xmlToJson
);
fs
.
writeFileSync
(
"holi.xml"
,
result
);
// Create/Modify holi.xml
fs
.
writeFileSync
(
"holi.json"
,
xmlToJson
);
// Create/Modify holi.json
var
parser
=
new
xml2js
.
Parser
();
parser
.
parseString
(
result
,
function
(
err
,
res
)
{
console
.
log
(
res
);
text
=
JSON
.
stringify
(
res
);
console
.
log
(
text
);
// Get dataName method
dateName
=
[];
var
idx
=
text
.
indexOf
(
"dateName"
,
0
);
while
(
idx
!=
-
1
)
{
console
.
log
(
idx
);
var
start
=
text
.
indexOf
(
"["
,
idx
)
+
2
;
var
end
=
text
.
indexOf
(
"]"
,
idx
)
-
1
;
var
tempStr
=
text
.
substring
(
start
,
end
);
console
.
log
(
tempStr
);
dateName
.
push
(
tempStr
);
idx
=
text
.
indexOf
(
"dateName"
,
idx
+
1
);
}
...
...
@@ -114,32 +106,71 @@ function init() {
locdate
=
[];
idx
=
text
.
indexOf
(
"locdate"
,
0
);
while
(
idx
!=
-
1
)
{
console
.
log
(
idx
);
var
start
=
text
.
indexOf
(
"["
,
idx
)
+
2
;
var
end
=
text
.
indexOf
(
"]"
,
idx
)
-
1
;
var
tempStr
=
text
.
substring
(
start
,
end
);
console
.
log
(
tempStr
);
locdate
.
push
(
tempStr
);
idx
=
text
.
indexOf
(
"locdate"
,
idx
+
1
);
}
console
.
log
(
locdate
);
// Get date through locdate
var
holiArr
=
[];
for
(
var
i
=
0
;
i
<
dateName
.
length
;
i
++
)
{
holiArr
.
push
(
getDate
(
dateName
[
i
],
locdate
[
i
]));
holiArr
.
push
(
get
Left
Date
(
dateName
[
i
],
locdate
[
i
]));
}
// Create tempArr to save dateName and locdate at once
console
.
log
(
holiArr
);
// Create tempArr to save dateName and locdate and leftDate at once
tempArr
=
[];
tempArr
.
push
(
dateName
);
tempArr
.
push
(
locdate
);
tempArr
.
push
(
holiArr
);
// To check left holiday
var
check
=
false
;
for
(
var
i
=
0
;
i
<
locdate
.
length
;
i
++
)
{
if
(
cmpDate
(
locdate
[
i
]))
{
check
=
true
;
tempArr
.
push
(
dateName
[
i
]);
// Get recent holiday name
tempArr
.
push
(
locdate
[
i
]);
// Get recent holiday date
tempArr
.
push
(
holiArr
[
i
]);
// Get leftDate through locdate
break
;
}
}
console
.
log
(
tempArr
);
if
(
!
check
)
{
// If there are no holidays left this month
console
.
log
(
"이번 달에는 남은 공휴일이 없습니다. 다음달 데이터를 불러옵니다."
);
// Get next month data
month
=
String
(
Number
(
month
)
+
1
).
padStart
(
2
,
"0"
);
changeParams
(
year
,
month
,
operation
);
getData
();
}
console
.
log
(
"* api로부터 데이터를 불러왔습니다."
);
console
.
log
(
"오늘의 날짜는"
,
getTodayDate
(),
"입니다."
);
console
.
log
(
"가장 가까운 공휴일인 ["
+
tempArr
[
0
]
+
"]의 날짜는 ["
+
tempArr
[
1
]
+
"]이고, ["
+
tempArr
[
2
]
+
"]일 남았습니다."
);
});
}
}
});
}
// To initialize datas when calling webpage
function
init
()
{
// Intialize Year, Month
var
date
=
getTodayDate
().
split
(
"-"
);
year
=
date
[
0
];
month
=
date
[
1
];
operation
=
"getHoliDeInfo"
;
changeParams
(
year
,
month
,
operation
);
// Get data from holiday api
getData
();
}
app
.
get
(
"/"
,
function
(
req
,
res
)
{
init
();
// Send data from nodejs to ejs
...
...
@@ -155,5 +186,5 @@ app.get("/", function (req, res) {
init
();
const
port
=
8
080
;
const
port
=
8
888
;
app
.
listen
(
port
,
()
=>
console
.
log
(
"Listening on port "
+
port
));
...
...
views/data.ejs
View file @
f24a999
...
...
@@ -9,10 +9,8 @@
<title>
Document
</title>
</head>
<body>
<
% for(var i = 0; i
< data
[
0
].
length
;
i
++)
{%
>
<p>
<h1>
<
%= data[0][i] %>
<
%= data[1][i] %>
<
%= data[2][i] %>일 남았습니다.
</h1>
<h1>
[
<
%= data[0] %>]까지
<
%= data[2] %>일 남았습니다. (
<
%= data[1] %>)
</h1>
</p>
<
% } %>
</body>
</html>
\ No newline at end of file
...
...
Please
register
or
login
to post a comment