Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package displaycalendar;
- /**
- *
- * @author Patrick
- */
- import java.util.Calendar;
- import java.util.Scanner;
- import java.util.GregorianCalendar;
- public class DisplayCalendar {
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- Calendar calendar = new GregorianCalendar();
- input.nextLine(); //make sure previous line is clear
- System.out.println("Please enter the date as numbers with spaces in between"
- + "(example: day month year), "
- + "\nthe current date will be displayed if insufficient data is given: ");
- //read the line and scan for each integer in it
- String lineBuffer = input.nextLine();
- Scanner dateScanner = new Scanner(lineBuffer);
- int day = dateScanner.nextInt();
- int month = dateScanner.nextInt();
- int year = dateScanner.nextInt();
- if (month == 0){
- month = (calendar.get(Calendar.MONTH) + 1);
- }
- if (year == 0){
- year = calendar.get(Calendar.YEAR);
- }
- //print statement here
- printMonthTitle(year, month);
- printMonthBody(year, month);
- }
- //print month title
- public static void printMonthTitle(int year, int month){
- System.out.println(" " + getMonthName(month) +
- " " + year);
- System.out.println("------------------------------");
- System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
- }
- //getMonthName
- public static String getMonthName(int month){
- String monthName = "";
- switch(month){
- case 1: monthName = "January";
- case 2: monthName = "February";
- case 3: monthName = "March";
- case 4: monthName = "May";
- case 5: monthName = "April";
- case 6: monthName = "May";
- case 7: monthName = "June";
- case 8: monthName = "July";
- case 9: monthName = "August";
- case 10: monthName = "Septemner";
- case 11: monthName = "November";
- case 12: monthName = "December";
- }
- return monthName;
- }
- //printMonthBody
- public static void printMonthBody(int year, int month){
- int startDay = getStartDay(year, month);
- int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);
- int i = 0;
- for(i = 0; i <startDay; i++){
- System.out.println(" ");
- if((i + startDay) % 7 == 0)
- System.out.println();
- }
- System.out.println();
- }
- //get start day of month/1/year
- public static int getStartDay(int year, int month){
- final int START_DAY_FOR_JAN_1_1800 = 3;
- int totalNumberOfDays = getTotalNumberOfDays(year, month);
- return totalNumberOfDays;
- }
- //get the total number of days
- public static int getTotalNumberOfDays(int year, int month){
- int total = 0;
- for(int i = 1800; i < year; i++){
- if(isLeapYear(i))
- total = total + 366;
- else
- total = total + 365;
- }
- for(int i = 1; i < month; i++)
- total = total + getNumberOfDaysInMonth(year, i);
- return total;
- }
- //get # days in month
- public static int getNumberOfDaysInMonth(int year, int month){
- if(month == 1 || month == 3 || month == 5 || month == 7 ||
- month == 8 || month == 10 || month == 12)
- return 31;
- if(month == 4 || month == 6 || month == 9 || month == 11)
- return 30;
- if(month == 2) return isLeapYear(year) ? 29 : 28;
- return 0;
- }
- public static boolean isLeapYear(int year){
- return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement