제가 작성한 달력인데....어디가 잘못인지 자꾸에러가..
HotPink
public class CalendarTest23 {
//0-일, 1-월, 2 - 화, 3- 수, 4-목, 5-금, 6- 토
private long standardDay = 2; //1980년 1월 1일 화요일
private long[] sum_day_per_month = {0,31,59,90,120,151,181,212,243,273,304,334,365};//월별 날짜의 합계
private long [] month = {31,28,31,30,31,30,31,31,30,31,30,31};//월별 날짜의 수
private long year = 0;
private long mon = 0;
public void doCommand(){
long sumDay = (year -1980)*365 +(sum_day_per_month[mon-1]);
//1980년을 기준으로 원하는 달의 한달전 까지의 날짜의 합
//2000년 3월을 알고 싶으면 2000년 2월 말까지의 날짜의 합
long plusDay = (long)Math.ceil((year -1980)/4)+1;//2월 29일계산
if((year -1980)%4==0 && mon 3){
plusDay =plusDay -1;//2월 29일이 있는 해이지만 1월,2월이라 포함하지 않음
}
long totalDay = sumDay + plusDay +standardDay;//원하는 달의 전달까지의 날짜의 합
long startDay = totalDay%7;//요일 계산
System.out.println(일\t월\t화\t수\t목\t금\t토 );
if ((year-1980)%4 ==0) {
month[1]=month[1]+1;//2월29일 이 있는 해는 29일 까지 출력하기 위해
}
for(long j = 0;jstartDay;j++){
System.out.print(\t);//1일전에 들어 가기 표현
}
for (long i = 1;imonth[mon-1]+1 ;i++ ) {
if(((startDay+i)%7)==0){
System.out.println(i);//날짜 출력
}else{
System.out.print(i+\t);//토요일이 되면 다음 줄로 옴겨서 출력
}
}
}
public static void main(String args[]) {
CalendarTest ct = new CalendarTest();
ct.year = Integer.parseInt(args[0]);//원하는 년도 받아오기
ct.mon = Integer.parseInt(args[1]);//원하는 달 받아오기
ct.doCommand();
}
};
자꾸에러가 나는데 그이유를 잘모른겠어요ㅠㅠ
책보면 작성은했는데....
고수님들 꼭 문제해결방법을...
(--)(__)
-
징징몬
아! 그리고 exarc 님 감사합니다...(--)(__)
-
Sonya
int로 바꾸니 잘되는데요!다시 질문인데요 인수를 두개주어 하나은 \년도\ 하나은 \월\로하고 인수하나를 주면 년도로 인식해서 그 년도 전달을 볼수있게하기 위해서는 어떵게 해야하는지요 이것 작성하는데요 보름가까이 했는데..
독학으로 -
큰길
private long mon = 0; - private int mon = 0; 로 하면 실행은 될겁니다. 결과는 잘 안나오네요..