abc Programski jezik Java
Objektno orijentisano programiranje
Pozivanje klase
21. Mjesečni kalendar
import java.util.*;
public class MjesecniKalendar {
public static void main(String[] args) {
Scanner tastatura = new Scanner(System.in);
System.out.print("Mjesec i godina kalendara: ");
int mjesec = tastatura.nextInt();
int godina = tastatura.nextInt();
GregorianCalendar kalendar = new GregorianCalendar();
int brojDana = 0;
switch(mjesec) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
brojDana = 31;
break;
case 2:
if(kalendar.isLeapYear(godina))
brojDana = 29;
else
brojDana = 28;
break;
case 4: case 6: case 9: case 11:
brojDana =30;
break;
default:
System.out.println("Greška: pogrešna specifikacija mjeseca!");
System.exit(-1);
}
//Kalendar pocinje od prvog dana datog mjeseca i godine
kalendar.set(godina, mjesec - 1, 1); //mjeseci pocinju od 0
/* Funkcija Calendar.get vraca cijeli broj iz intervala [1, 7],
1 => Nedelja, 2 => Ponedeljak, ..., 7 => Subota. */
int prviDan = kalendar.get(Calendar.DAY_OF_WEEK);
/* S obzirom da smo mi navikli da sedmica u kalendaru pocinje Ponedeljkom, a zavrsava Nedeljom,
izmjenicemo promjenljivu prviDan da 1 predstavlja Ponedeljak, 2 Utorak, a 7 Nedelju.*/
prviDan--;
if(prviDan == 0)
prviDan = 7;
System.out.println(" PON UTO SRE CET PET SUB NED");
int kolona = 0; // trenutna kolona prikaza dana kalendara
// Ispisi po 5 razmaka za svaki dan kog nema u prvom redu.
for(int i = 1; i < prviDan; ++i, kolona++)
System.out.print(" ");
for (int dan = 1; dan <= brojDana; dan++){
System.out.printf("%5d", dan);
kolona++;
if (kolona == 7) {
System.out.println();
kolona = 0;
}
}
System.out.println();
}}
Ispis na ekranu:
Index
|
|