all repos — WarBot2020 @ 597348eb14ef9f4a20cd87845b8dd43ddc180108

Bootleg version of "WorldWarBot 2020" done in Java and without a map.

siciliaguerrabot2020/Calendario/Calendario.java (view raw)

 1/*
 2 * To change this license header, choose License Headers in Project Properties.
 3 * To change this template file, choose Tools | Templates
 4 * and open the template in the editor.
 5 */
 6package siciliaguerrabot2020.Calendario;
 7
 8import java.util.ArrayList;
 9
10/**
11 *
12 * @author Marco
13 */
14public class Calendario {
15    private ArrayList<Mese> mesi;
16    private int anno;
17    private int mese;
18    private int giorno;
19
20    public Calendario(Data inizio) {
21        this.giorno = inizio.getGiorno();
22        this.anno = inizio.getAnno();
23        this.mese = inizio.getMese();
24        
25        this.mesi = new ArrayList<>(12);
26        mesi.add(new Mese("Gennaio", 31));
27        if(isBisestile(anno))
28            mesi.add(new Mese("Febbraio", 29));
29        else
30            mesi.add(new Mese("Febbraio", 28));
31        mesi.add(new Mese("Marzo", 31));
32        mesi.add(new Mese("Aprile", 30));
33        mesi.add(new Mese("Maggio", 31));
34        mesi.add(new Mese("Giugno", 30));
35        mesi.add(new Mese("Luglio", 31));
36        mesi.add(new Mese("Agosto", 31));
37        mesi.add(new Mese("Settembre", 30));
38        mesi.add(new Mese("Ottobre", 31));
39        mesi.add(new Mese("Novembre", 30));
40        mesi.add(new Mese("Dicembre", 31));
41    }
42    
43    private boolean isBisestile(int year){
44        return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
45    }
46    
47    public Data nextDay(){
48        if(giorno <= mesi.get(mese - 1).getN_giorni() - 1){
49            //incremento il giorno
50            giorno++;
51        } else {
52            if(mese < 12){
53                //incremento il mese
54                mese++;
55            } else {
56                //incremento l'anno
57                mese = 1;
58                anno++;
59                if(isBisestile(anno)){
60                    mesi.set(1, new Mese("Febbraio", 29));
61                } else {
62                    mesi.set(1, new Mese("Febbraio", 28));
63                }
64            }
65            giorno = 1;
66        }
67        return new Data(giorno, mese, anno);
68    }
69    
70    public String nextString(){
71        Data d = nextDay();
72        return d.getGiorno() + " " + mesi.get(d.getMese() - 1).getNome_mese() + " " + d.getAnno();
73    }
74}