1. 두개의 수와 배수 n을 입력받아 두 수 사이의 n 배수의 합을 구하는 프로그램을 작성해보자.
1//    import java.io.*;

2//    public class SumTwoMulti {
3//        public static void main(String[] args) throws IOException {
4//           BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

5//           int first = 0, second = 0, mul = 0, sum = 0, temp = 0;

6//           System.out.print("Input the Frist Number : ");
7//           first = Integer.parseInt(in.readLine());

8//           Ststem.out.print("Input the Second Number : ");
9//           second = Integer.parseInt(in.readLine());

10//           System.out.print("Input the Multiple : ");
11//           mul = Integer.parseInt(in.readLIne());

12//           if(first >= second) {
13//              temp = second;
14//              second = first;
15//              first = temp;
16//           }

17//           for(int i = 1; mul * i <= second; ++i) {
18//              if(mul * i < first) continue;

19//              sum += mul * i;
20//           }

21//            // for(int i = first; i <= second; ++i) {
22//            //    if(i % mul == 0) {
23//            //         sum += i;
24//            //    }
25//            // }

26//           System.out.println();
27//           System.out.println("The Sum of Multiple from " + first + " to " + second + " is " + sum);
28//        }
29//    }
첫 번째로 할일은 규칙을 찾는 일일 것이다. 얼마전 해봤던 두수의 크기 비교를 약간 응용한 문제였기 때문에, 그 부분까지는 문제가 되지 않았으나(16번째 라인까지), 문제는, 어떻게 하면 입력받은 두수안에서, 입력한 배수를 구하고, 그것의 합을 구하느냐였다.

오랜만에 수학적인 문제를 생각하려니, 머리가 회전되지 않는게 가장 큰 문제였으나, 가장 무식하게, 연습장에다가 써보면서 문제를 차근차근 풀어가기로 마음먹었다.

예를 들어, 10부터 20까지의 수중, 4의 배수를 구하는 문제를 대입해 보았다.

4의 배수를 처음부터, second 에 입력될 20까지 차례 대로 나열하면 다음과 같다.
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
이에 관한 for 문이 바로 17번째 라인에 있는 for문이다.

이제 문제는 여기서, 어떻게 하면, 범위내의 배수를 빼내느냐, 즉, 10부터 20이라는 숫자 사이의 있는 4의 배수를 어떻게 빼내오느냐의 문제가 발생한다.
4 * 1 = 4 (X)
4 * 2 = 8 (X)
4 * 3 = 12 (O)
4 * 4 = 16 (O)
4 * 5 = 20 (O)
4 * 6 = 24 (X)
20 이후의 문제는, 17번째 라인의 for 문에서 20이 될때까지 반복 실행하라고 하였으니, 20 이후의 문제는 없지만, 10 이전의 문제는, 어떻게 하면 풀수 있을까?

그때 생각난 것이 continue 예약어였다. 만약 4의 배수가 10보다 작으면, 아무 수행도 하지 않고, 다음 반복할 작업으로 바로 넘어가도록 만드는 것인데, 거기에 continue 가 가장 제격이었다.

그렇게, 하고, 마지막에는, 배수들의 합을 sum 에 저장하는 것으로 마무리 했다.

이렇게 다 풀고 나서, 풀이를 보니....

이...이렇게 간단하게 풀줄이야..... -0- 여전히... 돌머리임에는.. 틀림없다....


2. 문자 하나를 입력받아 대문자인지 소문자인지 구별하는 프로그램을 작성.
import java.io.*;

public class Capital {
    public static void main(String[] args) throws IOException {
       char ch;

       System.out.print("Input the One Character : ");
       ch = (char)System.in.read();

       if(ch >= 'a' && ch <= 'z') {
          System.out.println(ch + " is a small letter.");
       } else if(ch >= 'A' && ch <= 'Z') {
          System.out.println(ch + " is a capital letter.");
       } else
          System.out.println(ch + " is not the Alphabet.");
    }
}
이 문제는 굳이 설명할 필요가 있을까... 그래서 패스..


3. 연도를 입력받아 윤년인지 아닌지를 구별하는 프로그램.(윤년은 일반적으로 4년에 한번씩 돌아오는데, 그중 100으로 나누어 떨어지는 해는 윤년이 아니다. 그러나 100으로 나누어 떨어지는 해 중에서도 400으로 나누어 떨어지는 해는 윤년이다.)
1//    import java.io.*;

2//    public class LeapYear {
3//        public static void main(String[] args) throws IOException {
4//           BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      
5//           int ly = 0;

6//           System.out.print("Input the year : ");
7//           ly = Integer.parseInt(in.readLine());

8//           if(ly % 4 == 0) {
9//              if(ly % 100 == 0) {
10//                 if(ly % 400 == 0) {
11//                    System.out.println(ly + " is a leap year.");
12//                 } else {
13//                    System.out.println(ly + " is not a leap year.");
14//                 }
15//              } else {
16//                 System.out.println(ly + " is a leap year.");
17//              }
18//           } else {
19//              System.out.println(ly + " is not a leap year.");
20//           }
21//        }
22//    }
if ~ else 문이라는 구문에 대해서 약간 헷걸렸던 문제다. 가끔가다, 수박을 보고, 수박이라는 단어가 문득 생소하다는 것을 느끼듯, 이 문제도 if ~ else 문에서, 잠시 사용법에서 약간의 혼돈이 와서.... 역시, 프로그래밍은 자주 사용해야 한다니까.... -0-

총 3단계의 검색을 거친다고 볼수가 있는데, 처음, 입력한 년도가 4로 나누어지는지를 검사한다. 만약, 나누어 지지 않는다면, 19번째 라인이 실행되어, 윤년이 아니라는 메세지가 출력된다.

4로 나누어지는 지를 통과하면, 100으로 나누어지는 지를 확인한다. 만약, 나누어지지 않는다면, 16번째 라인이 실행, 윤년이라는 메시지가 출력된다.

100으로 나누어지면, 400으로 나누어지는 지를 마지막으로 검사한다. 만약, 400으로 나누어지면 윤년이라는 메시지를, 아니라면 윤년이 아니라는 메시지를 출력하게 되어있다.

문제는 예상외로 쉬우나, 나같이 돌머리를 소유한 자라면, 예상외로 힘들게 풀지도... 아무튼, if ~ else 문에 대해서 착각하지 않는다면, 쉽게 풀릴 문제.


4. 주민등록번호 8번째 자리를 입력받아 출생지를 알아보는 프로그램을 작성.(인터넷 검색을 이용하여 각 숫자가 나타내는 지역을 알아보자. 예를 들면 123456-7891234에서 8이라는 숫자가 적혀있는 자리는 출생지를 나타낸다. 그 숫자가 0이면 '서울' 이런 식인데 인터넷에서 검색하여 알아보자.)
import java.io.*;

public class ID8 {
    public static void main(String[] args) {
       int id8 = 0;

       System.out.print("Input the 8th number of your ID : ");
       id8 = System.in.read() - 48;

       switch(id8) {
             case 0 : System.out.println("You were born in Seoul."); break;
             case 1 : System.out.println("You were born in Kyoung Gi, In Cheon."); break;
             case 2 : System.out.println("You were born in Kang Won."); break;
             case 3 : System.out.println("You were born in Chung Book."); break;
             case 4 : System.out.println("You were born in Cung Nam, Dae Jeon."); break;
             case 5 : System.out.println("You were born in Jeon Book."); break;
             case 6 : System.out.println("You were born in Jeon Nam, Gwang Ju."); break;
             case 7 : System.out.println("You were born in Kyoung Book, Dae Gu."); break;
             case 8 : System.out.println("You were born in Kyoung Nam, Pusan."); break;
             case 9 : System.out.println("You were born in Jeju."); break;

             default : System.out.println("Who are you...???");
       }
    }
}
설명...필요한가????


5. 구구단을 출력하는 프로그램을 작성해 보자.
import java.io.*;

public class Gugu {
    public static void main(String[] args) throws IOException {
       int gugu = 0;
      
       System.out.print("Input the Multiplication number : ");
       gugu = System.in.read() - 48;

       System.out.println();
       System.out.println("========= " + gugu + " =========");

       for(int i = 1; i <= 9; ++i) {
          System.out.println(gugu + " * " + i + " = " + (gugu * i);
       }
    }
}
이것역시..설명이 필요한가???


6. 앞서 배운 계산기 프로그램을 만들어서 한번 계산을 한 후 다시 게산을 할 것인지 물어 보고 수행을 계속할 것인지를 결정하는 프로그램을 만들어 보자.
import java.io.*;

public class Calc {
    public static void main(String[] args) throws IOException {
       BufferedReader in = new BufferdReader(new InputStreamReader(System.in));

       int x = 0, y = 0;
       char op = 0, yn = 0;

       while(true) {
    // 첫번째 숫자를 입력 받아서 변수 x에 저장
             System.out.print("Input the First Number : ");
             x = Integer.parseInt(in.readLIne());

    // 연산자를 입력하는 부분. 출력된 +, -, *, /, % 외에 문자를 입력하면, 다시 입력할수 있도록
    // 반복실행 시켜준다.

             do{
                 System.out.print("Pick the Operators(+, -, *, /, %) : ");
                 op = (char)System.in.read();
                 System.in.read();
                 System.in.read();
             } while(op != '+' && op != '-' && op != '*' && op != '/' && op != '%');

    // 두번째 숫자를 입력받아 변수 y에 저장
             System.out.print("Input the Second Number : ");
             y = Integer.parseInt(in.readLine());

    // 입력받은 연산자에 따라, 해당 위치로, 이동, 출력.
             switch(op) {
                case '+' : System.out.println(x + " " + op + " " + y + " = " + (x+y)); break;
                case '-' : System.out.println(x + " " + op + " " + y + " = " + (x-y)); break;
                case '*' : System.out.println(x + " " + op + " " + y + " = " + (x*y)); break;
                case '/' : System.out.println(x + " " + op + " " + y + " = " + (x/y)); break;
                case '%' : System.out.println(x + " " + op + " " + y + " = " + (x%y)); break;
             }

    // 다시 한번 계산을 할것인지를 물음.
             System.out.print("One more? ");
             yn = (char)System.in.read();
             System.in.read();
             System.in.read();

    // 위의 질문에서 n이나 N 을 입력시 while 문을 탈출.
             if(yn == 'N' || yn == 'n') break;
       }
    }
}
설명은 주석문으로 대체.


7. 연도와 월을 입력받아 달력을 출력하는 프로그램을 작성(윤년도 확인해야 하고 요일도 나타나야 한다.) 참고 : 배열 없이 프로그램 작성
import java.io.*;

class Cal {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
       
        // yr : 입력 받을 년도를 저장, mth = 입력 받을 월을 저장,
        // mth_day = 입력 받은 월에 해당하는 일수를 저장, day : 출력하게 될 날짜들을 저장,
        // date : 입력받은 월의 전월까지의 총 일수를 저장
        // ch_mon : 입력 받은 월에 해당되는 영어를 저장,   
        // blank : 달력 출력시, 시작되는 날짜와 요일에 따른 선행 빈 공간 출력

        int yr = 0, mth = 0, mth_day = 0, day = 0, date = 0;
        String ch_mon = "";
        String blank1 = "", blank2 = "\t", blank3 = "\t\t", blank4 = "\t\t\t", blank5 = "\t\t\t\t", blank6 = "\t\t\t\t\t", blank7 = "\t\t\t\t\t\t";

        // 년도 입력, 저장
        System.out.print("Input the year by 4 units(EX : 2004) => ");
        yr = Integer.parseInt(in.readLine());

        // 월을 입력, 저장
        // 입력받은 월에 해당되는 영어를 변수에 저장하며,
        // 입력받은 월에 해당되는 일수를 저장한다.
        // 또한 전월까지의 총 일수를 저장하며,
        // 이 모든 과정을 평년과 윤년에 따라 수행되도록 한다.
        do
        {
            System.out.print("Input the month(EX : 6) =? ");
            mth = Integer.parseInt(in.readLine());

            switch(mth) {
                case 1 : ch_mon = "January"; mth_day = 31; break;
                case 2 : ch_mon = "February";
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        mth_day = 29;            // 윤년
                    } else {
                        mth_day = 28;            // 평년
                    }
                    date = 31; break;           
                    // 전월까지의 일수를 합해서 저장. 1월까지의 일수를 저장
                case 3 : ch_mon = "March"; mth_day = 31;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29; break;   
                // 윤년시, 전월까지의 일수를 합해서 저장, 1월과 2월까지의 일수를 합산, 저장.
                    } else {
                        date = 31 + 28; break;   
                // 평년시, 전월까지의 일수를 합해서 저장, 1월과 2월까지의 일수를 합산, 저장.
                    }
                case 4 : ch_mon = "April"; mth_day = 30;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31; break;
                    } else {
                        date = 31 + 28 + 31; break;
                    }
                case 5 : ch_mon = "May"; mth_day = 31;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30; break;
                    } else {
                        date = 31 + 28 + 31 + 30; break;
                    }
                case 6 : ch_mon = "June"; mth_day = 30;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30 + 31; break;
                    } else {
                        date = 31 + 28 + 31 + 30 + 31; break;
                    }
                case 7 : ch_mon = "July"; mth_day = 31;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30 + 31 + 30; break;
                    } else {
                        date = 31 + 28 + 31 + 30 + 31 + 30; break;
                    }
                case 8 : ch_mon = "August"; mth_day = 31;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30 + 31 + 30 + 31; break;
                    } else {
                        date = 31 + 28 + 31 + 30 + 31 + 30 + 31; break;
                    }
                case 9 : ch_mon = "September"; mth_day = 30;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31; break;
                    } else {
                        date = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31; break;
                    }
                case 10 : ch_mon = "October"; mth_day = 31;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30; break;
                    } else {
                        date = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30; break;
                    }
                case 11 : ch_mon = "November"; mth_day = 30;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31; break;
                    } else {
                        date = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31; break;
                    }
                case 12 : ch_mon = "December"; mth_day = 31;
                    if(yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) {
                        date = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30; break;
                    } else {
                        date = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30; break;
                    }

                default : System.out.println("Please Input Again.");
            }


        }while (mth != 1 && mth != 2 && mth != 3 && mth != 4 && mth != 5 && mth != 6 && mth != 7 && mth != 8 && mth != 9 && mth != 10 && mth != 11 && mth != 12);

        System.out.println(" ============== " + "<< " + yr + ", " + ch_mon + " >>" + " ============== ");
        System.out.println();
        System.out.println(" Sun\tMon\tTue\tWed\tThu\tFri\tSat ");

// 출력시, 시작일수와 요일에 따른 빈 공간을 출력하기 위한 부분, 하지만 이해안되는 식
// yr-1은 무얼까??

        int extra = ((yr-1) + (yr-1)/4 - (yr-1)/100 + (yr-1)/400 + date + 1 ) % 7;

        switch(extra) {
            case 0 : System.out.print(blank1); break;
            case 1 : System.out.print(blank2); break;
            case 2 : System.out.print(blank3); break;
            case 3 : System.out.print(blank4); break;
            case 4 : System.out.print(blank5); break;
            case 5 : System.out.print(blank6); break;
            case 6 : System.out.print(blank7); break;
        }

        for(int i = 1; i <= mth_day; i++) {
            day = i;

//    이해안되는 식
//    (yr-1)/4 - (yr-1)/100 + (yr-1)/400 : 윤년횟수
//    date : 전월까지의 일수를 총 합산한 일수
//    day : 해당 날짜, 1일, 2일, 3일, ....
//    yr-1 은 무얼까... -0-

            int total = ((yr-1) + (yr-1)/4 - (yr-1)/100 + (yr-1)/400 + date + day ) % 7;

//    6보다 작으면 그대로 출력, 그렇지 않으면, 한줄 내려 출력
            if(total % 7 < 6) {
// 10보다 작으면, 한자릿수라는 이야기 이므로, 한자릿수 앞에 0을 붙여 출력, 그렇지 않으면,
// 두자릿수라는 이야기로 0을 제외한 채 출력
                if(day < 10) {
                    System.out.print(" 0" + day + "\t");
                } else {
                    System.out.print(" " + day + "\t");
                }
            } else {
                if(day < 10) {
                    System.out.println(" 0" + day + "\t");
                } else {
                    System.out.println(" " + day + "\t");
                }
            }
        }
    }
}
솔직히 풀다가 막힌 부분이 생겨, 다른 소스를 보고 약간의 편집을 통해 완성시킨 소스.

그래서 이해가 안가는 부분이 몇가지가 있었는데, total 이라는 변수와, 달력을 출력시 틀에 맞춰 출력시키기 위한 코딩부분에서 이해가 안가는 부분이 몇가지 있었다.

특히 위의 yr-1 부분은 여전히 이해가 안가는 부분이다.

이 문제는 일단, 여기서 종료.
:
1. 숫자 하나를 입력받아 그 수가 1이면 "남성", 2이면 "여성' 이라는 글자를 출력하는 프로그램을 만들어 보자.

예시 :
성별을 입력하세요.(남성 : 1, 여성 : 2) : 1
당신은 남성입니다.

풀이과정
-> 이러한 문제들을 보면, 상당히 애매모호한게, 과연 진도상에서 배우지 않은 것을 사용해도 되는가라는 문제이다. 이 문제를 예로 들면, if 문을 사용해도 가능한지가 궁금했었던 문제인데, 문제 자체는 어려울 것이 없지만, 진도상에서 보면, 아직 if 문이라는 진도가 나오지 않았고, 삼항 연산자만 등장했기에, 문제의도가 삼항 연산자만을 가지고 풀라는 이야기로 해석해서, 삼항 연산자로만 풀었지만 이렇게 되면, 문제가 되는 것이, 과연 1이나 2를 제외한 나머지 키 값을 입력하면??

if 문을 사용한다면, 금방 풀리겠지만, if 문을 사용하지 않는다면... 흠.... 내 머릿속으로는 불가능... if 문을 사용하지 않고, 또한, 위의 문제가 발생하는 프로그램 소스 코드는 다음과 같다.

소스코드
import java.io.*;

class Sex {
    public static void main(String[] args) throws IOException {
        BufferedRead in = new BufferedReader(new InputStreamReader(System.in));

        String str = "";      
        System.out.print("성별을 입력하세요.(남성 : 1, 여성 : 2) :");
        int sex = Integer.parseInt(in.readLine());
        // in.readLine() 은 문자열을 위한 것이지, 정수형이나, 실수형을 위한 것은 아니다.
        // 문자열을, 숫자형태인, 정수형으로 바꿔서, 다음 삼항 연산자를 이용하여 연산을 하였다.

        str = sex == 1 ? "남성" : "여성";

        System.out.print("당신은 " + str + "입니다.");     
    }
}
위의 문제는 아까도 말했듯이, 그렇다면, 1과 2를 제외한 나머지 키를 입력했을 경우에는??? if 문을 사용하는 수밖에... -0-


2. 문자 하나를 입력받아 그 문자가 산술 연산자인지 아닌지를 판단하는 프로그램을 만들어 보자.

예시 :
산술 연산자를 입력하세요.('+', '-'. '*', '/', '%') : +
'+'는 산술 연산자 입니다.

산술 연산자를 입력하세요.('+', '-'. '*', '/', '%') : a
'a'는 산술 연산자가 아닙니다.

풀이과정
-> 여기서 막혔던 문제는 in.readLine() 이라는 메소드와, System.in.read() 라는 메소드의 몇가지 잘못된 이해에서 비롯되었다.

알 다시피 System.in.read() 는 문자 하나의 값만을 가질수 있으며, 엔터키를 입력하면, 엔터키에 대한 처리까지 해주어야 되는 번거로움이 있다. 그래서 나는 in.readLine() 이 더 편리한 것인줄 알고, in.readLine() 을 사용하여, 문제를 처리하려고 했다.

여기서, 아직 이해 못한 부분이 하나 등장하는데,

삼항연산자에서는 조건식에 문자열을 사용하냐 못하냐가 바로 그것이다. 나는 사용할수 있다고 생각을 하고, 다음 같은 소스 코드를 짜버렸다.

소스코드 // 실행은 되나, 오류 발생
import java.io.*;

class Operating {
    public static void main(String[] args) throws IOException {
       BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

       String str, op = "";
      
       System.out.print("산술 연산자를 입력하세요. ('+', '-', '/', '*', '%') : ");
       op = in.readLine();

       str = op == "+" || op == "-" || op == "/" || op == "*" || op == "%" ? "는 산술 연산자 입니다." : "는 산술 연산자가 아닙니다.";
      
       System.out.println("'" + op + "'" + str);
    }
}
하 지만, 여기서 발생하는 오류는, 무엇을 집어넣던지 간에, 삼항 연산자는, 조건식에서 false 라고 인식, 항상, false 부분에 있는 항을 실행시킨다. 결국, in.readLine() 사용을 포기하고, 문자열이 아닌, 문자값 하나만을 받는, System.in.read() 를 사용했다.

소스코드 // 문자 값을 사용하여 처리
import java.io.*;

class Operating {
    public static void main(String[] args) throws IOException {
       String str = "";

       System.out.print("산술 연산자를 입력하세요 ('+', '-'. '*'. '/', '%') : ");

       char op = (char)System.in.read();

       str = op == "+" || op == "-" || op == "*" || op == "/" || op == "%" ? "는 산술 연산자입니다." : "는 산술 연산자가 아닙니다.";

       System.out.println("'" + op + "'" + str);
    }
}
오류없이, 실행 성공, 이는 다음과 같이, 아스키 코드값을 이용하여 작성할수도 있지만, 모든 문자의 아스키 코드값을 외울수도 없는 노릇이고....

소스코드 // 아스키 코드 값을 사용하여 처리
import java.io.*;

class Operating {
    public static void main(String[] args) throws IOException {
       String str = "";

       System.out.print("산술 연산자를 입력하세요. ('+', '-', '/', '*', '%') : ");
       int op = System.in.read();

       str = op == 43 || op == 37 || op == 42 || op == 45 || op == 47 ? "는 산술 연산자입니다." : "는 산술 연산자가 아닙니다.";

       System.out.println("'" + op "'" + str);
    }
}
이상... 이며 아직, 해결 못한 부분은 다시 한번 알아봐야 하겠다.
:

BLOG main image
아무거나 공부하자!!! by Young79

공지사항

카테고리

분류 전체보기 (79)
Programing (29)
English (31)
Graphic (4)
Saying on T"We"tter (15)

최근에 올라온 글

최근에 달린 댓글

글 보관함

달력

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total :
Today : Yesterday :