Date객체
date객체.getTime() => date객체의 시간을 milisecond단위로 반환
date객체.toLocaleDateString() => 연.월.일을 반환
– 요일 – getDay()-> 0~6
– 배열, getDay()
test_date3 – 날짜수 계산 - getTime()
=> time에서 일 구하기 -> /1000/60/60/24/365
test_date4- 500일 후 계산
getTime에의해 현재의 milisec를 구한다
500일 의 milisec를 구한다 //milisec의 값을 구할때는
//곱하기-> (1000606024500)
현재의 milisec와 500일 의 milisec를 더한다
더한 값으로 새로운 time를 설정 후 년 월 일 을 구한다
경과시간 구하기
100일 후의 날짜 구하기
getTime() -리턴값은 millisec이다
1일의 millisec -> 1000 60 60 * 24
a = 현재의 millisec + 100일 후의 millisec
new Date(a)
String 객체
속성
length : 문자열의 길이.
메소드 str = “I Love Korea ”;
메서드 설명
charAt(index) index 위치의 문자를 구한다. index가 문자열의 범위를 벗어나면 빈 문자열이 리턴된다.
charCodeAt(index) index 위치의 문자에 대한 유니코드를 구한다.
indexOf(searchvalue, start) 부분 문자열의 위치를 검색한다. start는 검색 시작 위치이며 생략시 0이 적용되어 처음부터 검색한다. 없을 경우 -1을 리턴한다.
lastIndexOf(searchvalue, start) 부분 문자열의 위치를 역방향에서 검색한다. start는 검색 시작 위치이며 생략 시 문자열의 제일 끝이 적용된다. 없을 경우 -1을 리턴한다.
concat(s1, s2, …) 여러 개의 문자열을 연결한다. + 연산자와 동일하다.
trim() 앞 뒤의 공백을 제거한다.
toLowerCase() 소문자로 변환한다
toUpperCase() 대문자로 변환한다
replace(search,value) 문자열을 대체한다. 정규식도 사용 가능
search(searchvalue) 부분 문자열 또는 정규식을 검색하여 그 위치를 리턴한다.
match(regexp) 정규식으로 검색하여 일치하는 결과를 배열로 리턴한다. 발견되지 않으면 null을 리턴한다.
substring(from, to) 두 위치 사이의 부분 문자열을 추출한다. to를 생략하면 뒤쪽 모든 문자열을 추출한다.
slice(start, end) start 위치에서 end 위치까지 부분 문자열을 추출한다. 음수로 끝에서부터 위치를 지정할 수 있다.
substr(start, length) start에서 시작하여 length 길이만큼 부분 문자열을 추출한다. 길이를 생략하면 뒤쪽 모든 문자열을 추출한다.
split(separator, limit) 구분자로 구분된 문자열을 분리하여 배열로 리턴한다. limit는 최대 몇 개까지 리턴할 것인가를 지정한다.
정규식 => //g
여기서 g는 모든 것이라는 뜻
/korea/gi => 대소문자 무시(ignore)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script>
today = new Date();
function proc1(){
bir = new Date(1994, 11-1, 29);
//bir = new Date("2010.11.29");
ttime = today.getTime(); //date객체.getTime() => date객체의 날짜를 millisecond 단위로 반환
btime = bir.getTime();
console.log(ttime, btime);
times = ttime - btime;
res = times / 1000 /60 /60 /24 /365; //일 수
console.log(res);
str = "오늘 : " + today.toLocaleDateString() + "<br>";
str += "태어난 날: " + bir.toLocaleDateString() + "<br>";
str += parseInt(Math.ceil(res)) + " 경과하였습니다";
document.querySelector('#result1').innerHTML = str;
}
function proc2(){
tomilli = today.getTime(); //오늘 날짜의 millisecond 반환
milli100 = 1000 * 60 * 60 * 24 * 100; //1000분의 1초 * 60(초) * 60(분) * 24(시간) * 100(일)
millisum = tomilli + milli100;
after100 = new Date(millisum);
after100.toLocaleString() //날짜와 시간 출력
res = after100.toLocaleDateString() //날짜만 출력
str = "오늘 : " + today.toLocaleDateString() + "<br>";
str += "100일 후 : " + after100.toLocaleDateString() + "<br>";
document.querySelector('#result2').innerHTML = str;
}
function proc3(){
//1. id=pdate인 요소의 선택한 값을 가져온다 - value - "2020.11.4" - String이다
datevalue = document.getElementById('pdate').value;
//2. 1번의 value값으로 Date객체를 생성
theday = new Date(datevalue);
//경과시간
//3. 오늘 - 2번의 getTime() -> 결과 값은 millisec
times = today.getTime() - theday.getTime();
console.log("times=" + times);
if(times < 0) {
alert("선택오류입니다.");
return false;
}
//4. 경과한 날 수를 구한다
days = times / 1000 /60 /60 /24;
console.log("days=" + days);
//5. 4번의 결과값을 비교
if(days > 7){
res = "교환 불가능"
}else{
res = "교환 가능"
}
//5. 4번의 결과를 result3에 출력한다. - toLocaleDateString()
//오늘날짜
str = "오늘 날짜 : " + today.toLocaleDateString() + "<br>";
str += "구입 날짜 : " + theday.toLocaleDateString() + "<br>";
str += res;
document.getElementById('result3').innerHTML = str;
}
function proc4(){
christmas = new Date(2021, 12-1, 25);
//christmas millisec - 오늘의 millisec
times = christmas.getTime() - today.getTime();
//날 수 구하기
res = parseInt(times / 1000 /60 /60 /24);
str = "크리스마스까지 " + res + "일 남았습니다."
document.getElementById('result4').innerHTML = str;
}
</script>
</head>
<body>
<div class="box">
경과시간 구하기<br>
getTime() -리턴값은 millisec이다<br>
millisec를 1000으로 나누면 실제 초를 구할 수 있다<br>
태어난 날로부터 현재까지 일 또는 년수 구하기
<br>
<button type="button" onclick="proc1()">확인</button>
<div id="result1"></div>
</div>
<div class="box">
경과시간 구하기
100일 후의 날짜 구하기<br>
getTime() -리턴값은 millisec이다<br>
1일의 millisec -> 1000 * 60 * 60 * 24<br>
a = 현재의 millisec + 100일 후의 millisec
new Date(a)
<br>
<button type="button" onclick="proc2()">확인</button>
<div id="result2"></div>
</div>
<div class="box">
경과시간 구하기<br>
선택한 날로부터 경과한 날 수 구하기<br>
getTime() -리턴값은 millisec이다<br>
7일 이상이면 교환반품 불가능 아니면 가능<br>
<br>
<input type="date" id="pdate"><br>
<button type="button" onclick="proc3()">확인</button>
<div id="result3"></div>
</div>
<div class="box">
경과시간 구하기<br>
크리스마스까지 남은 일수 구하기<br>
getTime() -리턴값은 millisec이다<br>
christmas millisec - 오늘의 millisec<br>
<br>
<button type="button" onclick="proc4()">확인</button>
<div id="result4"></div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script type="text/javascript">
str = "korea 우리 나라 좋은 나라 대한 민국 Korea";
function proc1(){
a = str.charAt(6);
codea = str.charCodeAt(6);
res = str + "<br>";
res += "str.charAt(6) : " + a + "<br>";
res += "str.charCodeAt(6) : " + codea;
document.getElementById('result1').innerHTML = res;
}
function proc2(){
subs = str.substring(3, 7); //3 ~ 7사이
slic = str.slice(3, 7); //3 ~ 7사이
sublen = str.substr(3, 7); //3부터 7개글자를 추출
res = res = str + "<br>";
res += "str.substring(3, 7) : " + subs + "<br>";
res += "str.slice(3, 7) : " + slic + "<br>";
res += "str.substr(3, 7) : " + sublen + "<br>";
document.getElementById('result2').innerHTML = res;
}
function proc3(){
arr = str.split(" ");
document.getElementById('result3').innerHTML = arr;
}
function proc4(){
area = document.getElementsByTagName('textarea')[0].value;
//area = document.querySelector('textarea').value;
reparea = area.replace(/\r/g, "").replace(/\n/g, "<br>");
aa = str.replace(/korea/gi,'코리아')
alert(aa);
document.getElementById('result4').innerHTML = reparea;
}
function proc5(){
//input = prompt("찾는 문자열을 입력하세요");
value1 = str.match(/korea/gi);
console.log(value1);
value2 = str.match(/good/gi);
console.log(value2);
str = "str.match(/korea/gi) <br>";
str += "배열을 리턴 : " + value1 + "<br>";
str += "str.match(/good/gi) <br>";
str += "값이 없을 때 : " + value2;
document.getElementById('result5').innerHTML = str;
}
</script>
</head>
<body>
<div class="box">
charAt(index) : 지정된 index 위치의 문자를 리턴한다<br>
charCodeAt(index) : 지정된 index 위치의 문자 코드를 리턴한다
<br>
<button type="button" onclick="proc1()">확인</button>
<div id="result1"></div>
</div>
<div class="box">
문자열 추출<br>
substring(start, end) : start~end 사이의 문자열 추출<br>
slice(start, end) : start~end 사이의 문자열 추출<br>
substr(start, length) : start부터 length의 갯수만큼 추출<br>
<br>
<button type="button" onclick="proc2()">확인</button>
<div id="result2"></div>
</div>
<div class="box">
문자열 분리<br>
split(구분자, 갯수) : 구분자를 기준으로 문자열을 분리하여 배열로 생성되어 저장한다<br>
갯수는 생략가능, 생략시 전체를 대상으로 한다<br>
<br>
<button type="button" onclick="proc3()">확인</button>
<div id="result3"></div>
</div>
<div class="box">
문자열 대체 - 수정<br>
replace(oldvalue, newvalue) : oldvalue를 newvalue로 변경한다<br>
textarea에 여러 줄로 입력된 문자를 script로 보낸다 - value<br>
id = result4인 요소에 출력한다<br>
입력 시\r\n을 <br>태그로 변경하여 출력한다<br>
<br>
<textarea rows="5" cols="50"></textarea>
<button type="button" onclick="proc4()">확인</button>
<div id="result4"></div>
</div>
<div class="box">
문자열 검색<br>
match(value) : value를 검색한다<br>
검색된 문자열을 배열로 리턴하고 검색 문자가 없으면 null을 리턴한다<br>
<br>
<button type="button" onclick="proc5()">확인</button>
<div id="result5"></div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script type="text/javascript">
function proc1(){
//주민번호 입력받기
code = prompt("주민번호 입력", "-빼고 입력");
//생년월일과 성별을 출력 123456-1234567 ,length = 13자리 / index = 12까지
year2 = code.substr(0,2);
month = code.substr(2,2);
day = code.substr(4,2);
gennum = parseInt(code.substr(6,1));
gender = "";
year1 = 0;
switch(gennum){
case 1:
year1 = 19;
gender = "남성";
break;
case 2:
year1 = 19;
gender = "여성";
break;
case 3:
year1 = 20;
gender = "남성";
break;
case 4:
year1 = 20;
gender = "여성";
break;
}
console.log(year1);
fullyear = year1 + year2;
now = new Date();
age = now.getFullYear() - fullyear;
res = "생일 : " + fullyear + "년 " + month + "월 " + day + "일 <br>";
res += "성별 : " + gender + "<br>";
res += "나이 : " + age;
document.getElementById('result1').innerHTML = res;
}
function proc2(){
//str = "234567892345"
//str.length = 12
//입력 - 1103264123456
code = prompt("주민번호 입력", "-빼고 입력");
//code.length = 13 index : 0~12
sum = 0;
//한자리씩 추출 0~11
for(i=0; i < code.length - 1; i++){
//sum += code.substr(i,1) * str.substr(i,1);
sum += code.substr(i) * (i % 8 + 2)
}
res = 11 - sum % 11; //0~11
res = res % 10;
if(res == 10)res = 0;
else if(res == 11)res = 1;
//마지막인덱스의 숫자와 res가 같으면 ok
if(res == code.substr(code.length-1,1)){
alert("유효한 번호")
}else{
alert("틀린 번호")
}
}
</script>
</head>
<body>
<div class="box">
주민등록번호를 입력 받아 <br>
생년월일과 성별을 출력하는 프로그램을 작성하시오.<br>
(입력은 prompt로 입력받는다.)<br>
예) 주민등록번호를 110326-4432618로 입력 받은 경우<br>
생일 : 2011년 3월 26일<br>
성별 : 여자 <br>
나이: <br>
<br>
<button type="button" onclick="proc1()">확인</button>
<div id="result1"></div>
</div>
<div class="box">
주민등록번호를 입력 받아 -없이 입력 1103264432618 <br>
주민등록번호의 유효성을 검사하는 프로그램을 작성하시오.(ABCDEF-GHIJKLM)<br>
A*2 + B*3 + ... + H*9 + I*2 + ... + L*5 의 총합을 구한다.<br>
1번의 합을 11로 나눈 나머지를 구한다.<br>
11에서 2번의 결과를 뺀다.<br>
3번의 결과가 0~9이면 값 그대로, 10이면 0, 11이면 1로 변환<br>
4번의 결과와 M자리의 값이 같으면 맞는 번호이다.<br>
<br>
<button type="button" onclick="proc2()">확인</button>
<div id="result2"></div>
</div>
</body>
</html>