#1. 공부시간 측정 프로그램
실용성과는 거리가 매우 먼 프로그램이지만 배운것들을 활용해보는 의미에서...
공부 하고있을땐 이클립스가 항상 켜져있으니 그냥 켜놨다가 심심풀이용으로 쓸 수 있지 않을까? ㅎㅎ
그래서 내가 엄청 이상한 것을 입력하지만 않으면 되도록, 딱 그정도로만 만들었음
JOptionPane 클래스를 이용해서 공부를 시작한 시(Hour)와 분(Minute)를 입력받은 후
현재 시간과 비교해서 공부시간을 측정하는 프로그램을 만들어봤음
HOUR의 범위가 0부터 11까지라서 입력받는 시의 범위를 0~11로 받기 위해서,
MINUTE의 범위가 0부터 59까지라서 입력받는 분의 범위를 0~59로 받기 위해서,
범위 밖의 숫자를 입력했을 경우 오류를 발생시키게 만들었다.
만들고 보니, 시간이 지나고 다시 코드를 보면 기억이 안 나서 불편할 때가 많다.
이래서 주석을 많이 활용하는 것 같다. 앞으로 주석을 일일이 다 달아놔야겠다.
import java.util.Calendar;
import javax.swing.JOptionPane;
public class 공부시간측정 {
private static void timecheck(int starthour, int startminute) {
Calendar today = Calendar.getInstance();
int hour = today.get(Calendar.HOUR);
int minute = today.get(Calendar.MINUTE);
int studiedhour = 0;
int studiedminute = 0;
if (hour >= starthour) {
studiedhour = hour - starthour;
} else {
studiedhour = hour+12 - starthour;
}
if (minute >= startminute) {
studiedminute = minute - startminute;
} else {
--studiedhour;
studiedminute = minute + 60 - startminute;
}
System.out.println(studiedhour+"시간 "+studiedminute+"분 경과했습니다.");
}
public static void main(String[] args) {
String A = JOptionPane.showInputDialog("시작한 시(Hour)를 입력하세요(숫자만)");
if (A==null) {
return;
}
String B = JOptionPane.showInputDialog("시작한 분(Minute)를 입력하세요(숫자만)");
if (B==null) {
return;
}
int starthour;
int startminute;
try {
starthour = Integer.valueOf(A);
startminute = Integer.valueOf(B);
if ((!(starthour>=0 && starthour<12)) || (!(startminute>=0 && startminute<60))) {
throw new NumberFormatException();
}
timecheck(starthour, startminute);
} catch (NumberFormatException ne) {
System.out.println("잘못 입력하셨습니다.");
}
}
}
#2. 달력을 출력하는 프로그램
몇 번 따라해보고 나서, 혼자힘으로 작성해봄
argument에 year(4자리)와 month(0~11)를 입력하면 달력을 출력하는 프로그램
import java.util.Calendar;
import java.util.Date;
public class pr {
public static void main(String[] args) {
Calendar sDay = Calendar.getInstance();
Calendar eDay = Calendar.getInstance();
int year = Integer.valueOf(args[0]);
int month = Integer.valueOf(args[1]);
int START_DAY_OF_WEEK = 0;
int END_DAY = 0;
sDay.set(year, month-1, 1);
eDay.set(year, month, 1);
eDay.add(Calendar.DATE, -1);
START_DAY_OF_WEEK = sDay.get(Calendar.DAY_OF_WEEK);
END_DAY = eDay.get(Calendar.DATE);
System.out.println(" "+year+"년 "+month+"월");
System.out.println(" SUN MON TUE WED THU FRI SAT");
for (int i=1; i<START_DAY_OF_WEEK; i++) {
System.out.print(" ");
}
for (int i=1, n=START_DAY_OF_WEEK; i<=END_DAY; i++,n++) {
if(i<10) {
System.out.print(" "+i);
} else {
System.out.print(" "+i);
}
if (n%7==0) {
System.out.println();
}
}
}
}
'간단 실습' 카테고리의 다른 글
220312 Java - 퀴즈 (0) | 2022.03.13 |
---|---|
220311 Java - Chapter 7 실습 (0) | 2022.03.12 |