#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

+ Recent posts