From 7c45335ce87c88ce2dca175a345ff9e97be0b8a3 Mon Sep 17 00:00:00 2001 From: shaggy3007 Date: Mon, 23 Oct 2023 23:03:10 +0200 Subject: [PATCH] added calendar features --- Elaborato_IS/src/Calendar/Activity.java | 5 ++ Elaborato_IS/src/Calendar/ActivityType.java | 19 ++++ Elaborato_IS/src/Calendar/Calendar.java | 5 ++ Elaborato_IS/src/Calendar/Date.java | 88 +++++++++++++++++++ Elaborato_IS/src/Calendar/Day.java | 58 ++++++++++++ Elaborato_IS/src/Calendar/Days.java | 11 +++ Elaborato_IS/src/Calendar/MainTest.java | 11 +++ Elaborato_IS/src/Calendar/Month.java | 73 +++++++++++++++ Elaborato_IS/src/Calendar/Months.java | 16 ++++ Elaborato_IS/src/Calendar/Week.java | 61 +++++++++++++ .../src/ClientApp/ActivitySelectorPane.java | 5 ++ Elaborato_IS/src/ClientApp/LoginPage.java | 17 ++++ Elaborato_IS/src/ClientApp/UserDataTypes.java | 2 - 13 files changed, 369 insertions(+), 2 deletions(-) create mode 100644 Elaborato_IS/src/Calendar/Activity.java create mode 100644 Elaborato_IS/src/Calendar/ActivityType.java create mode 100644 Elaborato_IS/src/Calendar/Calendar.java create mode 100644 Elaborato_IS/src/Calendar/Date.java create mode 100644 Elaborato_IS/src/Calendar/Day.java create mode 100644 Elaborato_IS/src/Calendar/Days.java create mode 100644 Elaborato_IS/src/Calendar/MainTest.java create mode 100644 Elaborato_IS/src/Calendar/Month.java create mode 100644 Elaborato_IS/src/Calendar/Months.java create mode 100644 Elaborato_IS/src/Calendar/Week.java create mode 100644 Elaborato_IS/src/ClientApp/ActivitySelectorPane.java create mode 100644 Elaborato_IS/src/ClientApp/LoginPage.java diff --git a/Elaborato_IS/src/Calendar/Activity.java b/Elaborato_IS/src/Calendar/Activity.java new file mode 100644 index 0000000..4634914 --- /dev/null +++ b/Elaborato_IS/src/Calendar/Activity.java @@ -0,0 +1,5 @@ +package Calendar; + +public class Activity { + +} diff --git a/Elaborato_IS/src/Calendar/ActivityType.java b/Elaborato_IS/src/Calendar/ActivityType.java new file mode 100644 index 0000000..9b51752 --- /dev/null +++ b/Elaborato_IS/src/Calendar/ActivityType.java @@ -0,0 +1,19 @@ +package Calendar; + +import java.util.TreeSet; + +public enum ActivityType { + Retrieve, + FirstRelease, + Renew, + Shipment, + Lost, + Ruined; + public TreeSet Names () { + TreeSet TMP = new TreeSet<>(); + for (var name: ActivityType.values()) { + TMP.add(name.toString()); + } + return TMP; + } +} diff --git a/Elaborato_IS/src/Calendar/Calendar.java b/Elaborato_IS/src/Calendar/Calendar.java new file mode 100644 index 0000000..70e7e92 --- /dev/null +++ b/Elaborato_IS/src/Calendar/Calendar.java @@ -0,0 +1,5 @@ +package Calendar; + +public class Calendar { + +} diff --git a/Elaborato_IS/src/Calendar/Date.java b/Elaborato_IS/src/Calendar/Date.java new file mode 100644 index 0000000..0388a93 --- /dev/null +++ b/Elaborato_IS/src/Calendar/Date.java @@ -0,0 +1,88 @@ +package Calendar; + +import java.util.Iterator; + +public class Date implements Comparable , Iterable{ + private int day; + private int month; + private int year; + + private static int[] DaysInMonth = {31,28,31,30,31,30,31,30,30,31,30,31}; + public Date (int day, int month, int year) { + if (isValid(day, month, year)) { + this.day = day; + this.month = month; + this.year = year; + } else { + this.day = 1; + this.month = 1; + this.year = 2023; + } + } + public Date (Date O) { + this.day = O.day; + this.month = O.month; + this.year = O.year; + } + private boolean isValid(int day, int month, int year) { + if (month > 0 && month < 13) { + if (day > 0 && day <= DaysInMonth[month-1]) { + return true; + } + } + return false; + } + @Override + public int compareTo(Date o) { + if (year == o.year) { + if (month == o.month) { + if (day == o.day) { + return 0; + } else if (day > o.day) { + return 1; + } else return -1; + } else if (month > o.month) { + return 1; + } else return -1; + } else if (year > o.year) { + return 1; + } else return -1; + } + @Override + public Iterator iterator() { + // TODO Auto-generated method stub + return new Iterator() { + int nextDay = day+1; + @Override + public boolean hasNext() { + // TODO Auto-generated method stub + return true; + } //there's always the next day :P + + @Override + public Date next() { + if (isValid(nextDay,month,year)) { + return new Date(nextDay,month,year); + + } else if (month < 12) { + return new Date(1,++month,year); + } else return new Date(1,1,year+1); + } + + }; + } + public int getDay() { + return day; + } + public int getMonth() { + return month; + } + public int getYear() { + return year; + } + public String toString() { + return day + "/" + month + "/" + year; + } + + +} diff --git a/Elaborato_IS/src/Calendar/Day.java b/Elaborato_IS/src/Calendar/Day.java new file mode 100644 index 0000000..491cb2f --- /dev/null +++ b/Elaborato_IS/src/Calendar/Day.java @@ -0,0 +1,58 @@ +package Calendar; + +import java.util.Iterator; + +public class Day implements Iterable,Comparable { + + private Days Name; + private int ordinal; + private Date date; + + + public Day (Date date, int ordinal) { + this.ordinal = ordinal; + this.Name = Days.values()[ordinal-1]; + this.date = date; + } + + @Override + public Iterator iterator() { + return new Iterator() { + + @Override + public boolean hasNext() { + // There' s always a next day + return true; + } + + @Override + public Day next() { + if (ordinal == 7) { + + return new Day(date.iterator().next(),1); + } else { + return new Day(date.iterator().next(),ordinal+1); + } + } + + }; + } + + @Override + public int compareTo(Day o) { + return this.date.compareTo(o.date); + } + public Days getName() { + return Name; + } + public Date getDate() { + return date; + } + public int getOrdinal() { + return ordinal; + } + public String toString() { + return Name.toString() + ": " + date.toString(); + } + +} diff --git a/Elaborato_IS/src/Calendar/Days.java b/Elaborato_IS/src/Calendar/Days.java new file mode 100644 index 0000000..9e187d0 --- /dev/null +++ b/Elaborato_IS/src/Calendar/Days.java @@ -0,0 +1,11 @@ +package Calendar; + +public enum Days { + Monday, + Tuesday, + Wednesday, + Thursday, + Friday, + Saturday, + Sunday; +} diff --git a/Elaborato_IS/src/Calendar/MainTest.java b/Elaborato_IS/src/Calendar/MainTest.java new file mode 100644 index 0000000..aa5a9ae --- /dev/null +++ b/Elaborato_IS/src/Calendar/MainTest.java @@ -0,0 +1,11 @@ +package Calendar; + +public class MainTest { + + public static void main(String[] args) { + Month M = new Month(2023,10,Days.Sunday); + System.out.println(M.toString()); + + } + +} diff --git a/Elaborato_IS/src/Calendar/Month.java b/Elaborato_IS/src/Calendar/Month.java new file mode 100644 index 0000000..ab36f7c --- /dev/null +++ b/Elaborato_IS/src/Calendar/Month.java @@ -0,0 +1,73 @@ +package Calendar; + +import java.util.Iterator; +import java.util.TreeSet; + +public class Month implements Iterable,Comparable{ + + private Months name; + private int ordinal; + private Date First; + private TreeSet Weeks = new TreeSet<>(); + private static int[] DaysInMonth = {31,28,31,30,31,30,31,30,30,31,30,31}; + + + public Month (int year, int ordinal, Days firstDay) { + this.First = new Date(1,ordinal,year); + name = Months.values()[ordinal-1]; + Date tmpDate = new Date(First); + Week tmpWeek = new Week(tmpDate,firstDay.ordinal()+1); + Weeks.add(tmpWeek); + do { + + tmpWeek = tmpWeek.iterator().next(); + tmpDate = tmpWeek.getWeekDays().last().getDate(); + Weeks.add(tmpWeek); + + + }while(tmpDate.getDay() iterator() { + // TODO Auto-generated method stub + return new Iterator() { + + @Override + public boolean hasNext() { + // There's always a next month + return true; + } + + @Override + public Month next() { + if (ordinal == 12) { + return new Month(First.getYear()+1,1,Weeks.last().getWeekDays().last().getName()); + } else { + return new Month(First.getYear(),ordinal+1,Weeks.last().getWeekDays().last().getName()); + } + + } + + }; + } + public Months getName() { + return name; + } + public String toString() { + + String out = name.toString()+":\n"; + for (Week W: Weeks) { + out += W.toString()+ "\n"; + } + + return out; + } + +} diff --git a/Elaborato_IS/src/Calendar/Months.java b/Elaborato_IS/src/Calendar/Months.java new file mode 100644 index 0000000..cf0e680 --- /dev/null +++ b/Elaborato_IS/src/Calendar/Months.java @@ -0,0 +1,16 @@ +package Calendar; + +public enum Months { + January, + February, + March, + April, + May, + June, + July, + August, + September, + October, + November, + December; +} diff --git a/Elaborato_IS/src/Calendar/Week.java b/Elaborato_IS/src/Calendar/Week.java new file mode 100644 index 0000000..7e1f331 --- /dev/null +++ b/Elaborato_IS/src/Calendar/Week.java @@ -0,0 +1,61 @@ +package Calendar; + +import java.util.Iterator; +import java.util.TreeSet; + +public class Week implements Iterable, Comparable { + + private TreeSet WeekDays = new TreeSet<>(); + private static int[] DaysInMonth = {31,28,31,30,31,30,31,30,30,31,30,31}; + public Week (Date date,int ordinal) { + Day WeekDay = new Day(date,ordinal); + WeekDays.add(WeekDay); + do{ + if (!WeekDay.getName().toString().equals(Days.Sunday.toString())) { + WeekDay = WeekDay.iterator().next(); + WeekDays.add(WeekDay); + } + //System.out.println(WeekDay.toString()+" "+DaysInMonth[WeekDay.getDate().getMonth()-1]); + }while(!(WeekDay.getName().toString().equals(Days.Sunday.toString())) && WeekDay.getDate().getDay() iterator() { + return new Iterator() { + + @Override + public boolean hasNext() { + // There's always a next week + return true; + } + + @Override + public Week next() { + if (WeekDays.last().getOrdinal() == 7) { + return new Week(WeekDays.last().iterator().next().getDate(),1); + } else { + return new Week(WeekDays.last().iterator().next().getDate(),WeekDays.last().getOrdinal() + 1); + } + } + + }; + } + + @Override + public int compareTo(Week o) { + // TODO Auto-generated method stub + return WeekDays.first().compareTo(o.WeekDays.first()); + } + + public TreeSet getWeekDays () { + return WeekDays; + } + public String toString() { + String out = "\t"; + for (Day D: WeekDays) { + out += " - " + D.toString(); + } + out += "\n"; + return out; + } +} diff --git a/Elaborato_IS/src/ClientApp/ActivitySelectorPane.java b/Elaborato_IS/src/ClientApp/ActivitySelectorPane.java new file mode 100644 index 0000000..8f82293 --- /dev/null +++ b/Elaborato_IS/src/ClientApp/ActivitySelectorPane.java @@ -0,0 +1,5 @@ +package ClientApp; + +public class ActivitySelectorPane { + +} diff --git a/Elaborato_IS/src/ClientApp/LoginPage.java b/Elaborato_IS/src/ClientApp/LoginPage.java new file mode 100644 index 0000000..0f8f8d9 --- /dev/null +++ b/Elaborato_IS/src/ClientApp/LoginPage.java @@ -0,0 +1,17 @@ +package ClientApp; + +public class LoginPage extends AbstractAppPane { + + @Override + public void gridSetup() { + // TODO Auto-generated method stub + + } + + @Override + public void textFill() { + // TODO Auto-generated method stub + + } + +} diff --git a/Elaborato_IS/src/ClientApp/UserDataTypes.java b/Elaborato_IS/src/ClientApp/UserDataTypes.java index d05115c..5c9ea16 100644 --- a/Elaborato_IS/src/ClientApp/UserDataTypes.java +++ b/Elaborato_IS/src/ClientApp/UserDataTypes.java @@ -5,8 +5,6 @@ import java.util.ArrayList; public enum UserDataTypes { Nome, Cognome, - Città, - Provincia, Luogo, Cittàl, Data,