목록자바 (15)
MSM8994의 화룡점정 블로그
지난 글에서 단색 달력을 출력하는 예제를 보셨습니다. 오늘은 이 예제를 바꿔서 색칠이 가능하도록 해보겠습니다. 시작해볼까요? div#calendar-sun { width: 30px; /* 가로 폭: 30px */ float: left; /* 왼쪽 객체에 붙도록 함 */ text-align: right; /* 안에 글 오른쪽 정렬 */ color: red; /* 문자열 색상 빨강 */ } div#calendar-holiday { width: 30px; /* 가로 폭: 30px */ float: left; /* 왼쪽 객체에 붙도록 함 */ text-align: right; /* 안에 글 오른쪽 정렬 */ color: red; /* 문자열 색상 빨강 */ } div#calendar-sat { width: 30..
결과 배열에 월당 일수를 넣어두고 달력 출력 배열에 월별 일 수를 넣어두고 달력을 출력합니다. 0월은 없으므로 [0]에는 허수를 집어넣었습니다.
윤년 구하는 코드 찾아보면서 한 줄로 어떻게 안되나 싶은 마음이 드셨을겁니다. year % 4 == 0 && year % 100 != 0 || year % 400 == 0 4년마다 오고 100년마다는 아니지만 400년마다는 윤년이 되는걸 짧게 표현할 수 있을까?. 그래서 인터넷을 돌다가 이런 코드가 눈에 밟혔습니다.자바스크립트로 짜여진 21자 코드인데 원형은 이렇게 생겼습니다. 여기서 y는 년도입니다. !(y%(y%25?4:16))(출처: https://codegolf.stackexchange.com/questions/50798/counting-leap-years) 자바스크립트는 C처럼 0을 false로, 나머지를 true로 사용할 수 있습니다.따라서 이런 암시가 없는 자바를 위해 조금 바꾼다면 조건이 ..
문제다음 입력 형식과 같이 입력받은 후 화폐 단위별로 화폐의 매수를 계산하여 출력 형식에 맞게 출력하시오. 입력엄철식 539620 양동수 538973 이동훈 173105 출력 출장비지급표 성명 지급액 오만원 만원 오천원 천원 오백원 백원 오십원 십원 오원 일원 --------------------------------------------------------------------------- 엄철식 539620 10 3 1 4 1 1 0 2 0 0 양동수 538973 10 3 1 3 1 4 1 2 0 3 이동훈 173105 3 2 0 3 0 1 0 0 1 0 --------------------------------------------------------------------------- 전체 화폐..
오늘은 1부터 N까지의 자연수, 홀수, 짝수 합을 구하는 방법을 알려드리겠습니다. 매개변수 전달방법먼저 매개변수를 전달하려면 페이지 주소 뒤에 ?num=10 이렇게 전달하시면 GET 방식입니다. 여기서는 괜찮으니 이렇게 불러오도록 하죠. (파일이름).jsp?num=10이렇게 주소칸에 적으시면 됩니다. 본격적인 코딩 시작혹시나 모르니 UTF-8 인코딩으로 매개변수를 읽으시구요.request.setCharacterEncoding("UTF-8"); num매개변수를 쓰겠다고 했으니 이것을 strNum으로 읽어온 다음 parseInt(strNum)한 수를 num에 기억합니다. 단, 못 읽어왔을때 진행해서는 안되므로 초기값은 -1로 설정해둡니다.String strNum = request.getParameter("n..
배열을 만들고 이 배열의 길이만큼 임의의 수를 넣으려고 합니다. 로또처럼 1~45 사이의 수로 하려면 이렇게 하세요. Math.random()을 활용하되 0.0~0.99999... 까지밖에 안되는 값에 최대값을 곱해서 0~44.99999... 로 만들어주세요. 여기에 1을 더해 1~45.99999로 만들고 int형으로 변환하면 1~45까지의 임의의 수가 나옵니다. 로또에는 같은 숫자가 다시 뽑혀나오지 않으므로 직접 중복여부를 검사해서 중복인 경우 해당 칸을 다시 반복하도록 합니다. int[] numbers = new int[6]; // 6개의 정수를 담는 배열 선언 // insertCur가 numbers 배열의 길이를 넘지 않을 때까지 반복합니다. // 중복이 생긴다면 반복 횟수가 늘어날 수 있습니다. ..
오늘은 Calendar 객체를 통해 오늘 날짜를 구한 뒤 clone() 으로 객체를 복제합니다. 그 복제한 Calendar 객체를 하루 앞당긴 다음 각 날짜 요소를 추출하여 문자열로 바꿔보고, SimpleDateFormat 을 통해서도 바꿔봅니다. 그리고 compareTo를 이용해 어느쪽이 앞인지를 비교하는 소스입니다. 두 날짜는 같은 형식으로 짜여져있어야 합니다. 월일년이나 일월년 처럼 큰게 뒤로 가버리는 경우 비교가 되지 않습니다. parseInt로 수로 변환해 사용하는 경우 자료형 범위 한계로 Long을 사용해야 합니다. // 오늘 날짜와 어제 날짜를 구해서 비교하기. // 오늘 날짜 Calendar today = Calendar.getInstance(); // 어제 날짜는 오늘의 -1일 Calen..
클래스에 소속될 멤버 변수를 선언하실 때 무심코 아래와 같이 만드는 경우가 있을 겁니다. public int score = -1; // 학생의 점수를 기억 (-1: 입력되지 않음) 그리고 접근할 때 아래처럼 하시겠죠. student[i].score = inputScore; // 가장 간단히 멤버 변수 값을 바꾸는 법 이렇게 하는 것이 가장 간단하기 때문일겁니다. 그러면 입력될 점수에 유효범위가 필요할 때는 어떻게 하면 좋을까요?if(0
2중 배열은 배열을 배열에 담은 것인 다중 배열이기에 각 배열끼리는 다른 객체가 되기 때문입니다.메모리에서 연속된 곳에 저장되어 있지 않는 것이지요.사람들이 2중배열을 2차원을 표현하는데 쓴다고 2차원 배열이라고도 하는데그렇게 생각해버리시면 [1][0]이 [0][8]의 다음 원소라거나 9번째 원소라고 생각하시게 될겁니다.그래서 저는 이걸 잘못 생각한다고 봅니다. C에서 쓰이는 malloc실행 - free실행 처럼 자바에서는 new실행 - null등 다른거 할당 을 통해 그 변수가 참조할 객체를 동적으로 생성하고 소멸시킬 수 있습니다.참조형 변수(레퍼런스 타입)는 객체 자체가 아니라 그 객체를 가리키는 주소가 그 변수에 들어있고 객체는 메모리 어딘가에 있다고 들어보셨을겁니다.2중배열도 같습니다. a라는 변..