Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

public class CalendarHighlight

{
public static void main(String[] args)
{
printMonth(Integer.parseInt(args[0]), Integer.parseInt(args[1]));
}
private static void printMonth(int monthStartDay, int lastDateInMonth)
{
int nextDayColumnToUse = monthStartDay;
int nextDateToPrint = 1;
printMonthLineOfHyphens();
printDayNames();
int noOfRows = 0;
while(nextDateToPrint <= lastDateInMonth || noOfRows < 6)
{
System.out.print("| ");
for(int dayColumnNo = 1; dayColumnNo <=7; dayColumnNo++)
{
if(dayColumnNo > 1)
System.out.print(" ");

if(dayColumnNo != nextDayColumnToUse || nextDateToPrint > lastDa
teInMonth)
printDateSpace();
else
{
printDate(nextDateToPrint);
nextDayColumnToUse++;
nextDateToPrint++;
}
}
System.out.println("|");
noOfRows++;
nextDayColumnToUse = 1;
}
printMonthLineOfHyphens();
}
private static void printMonthLineOfHyphens()
{
System.out.print(" ");
for(int dayColumnNo = 1; dayColumnNo <= 7; dayColumnNo++)
{
if(dayColumnNo >1)
System.out.print("-");
printDateHyphens();
}
System.out.println(" ");
}
private static void printDayNames()
{
System.out.print("| ");
for(int dayColumnNo = 1; dayColumnNo <=7; dayColumnNo++)
{
if(dayColumnNo > 1)
System.out.print(" ");
printDayName(dayColumnNo);
}
System.out.println("|");
}
private static void printDayName(int dayNo)
{
switch(dayNo)
{
case 1: System.out.print("Su"); break;
case 2: System.out.print("Mo"); break;
case 3: System.out.print("Tu"); break;
case 4: System.out.print("We"); break;
case 5: System.out.print("Th"); break;
case 6: System.out.print("Fr"); break;
case 7: System.out.print("Sa"); break;
}
}

private static void printDateSpace()
{
System.out.print(" ");
}
private static void printDateHyphens()
{
System.out.print("----");
}
private static void printDate(int date)
{
System.out.printf("%02d", date);
}

}

You might also like