-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCalendar.java
More file actions
161 lines (117 loc) · 4.25 KB
/
Copy pathCalendar.java
File metadata and controls
161 lines (117 loc) · 4.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
package dataBase;
public class Calendar {
public String [][] data;
int counter;
public Calendar(int size)
{
data = new String [size][5]; // gör en ny data, i form av string
counter = 0;
}
public String addperson(String [] inString)
{
if (counter > data.length)// length är en metod, för arrays osv, hur lång
{
return " Not added ";
}
else
{
//code, lägga till namn plus födelsedag, fylla i slot
for (int i =0; i < 5; i++)
{
data [counter][i] = inString[i]; // lägger in förnamn, efternamn, dag, månad, år i en rad, 5 olika kolumner
}
counter++; //increase counter by 1 when a names and their birthday is added to slot
return "Person added at position " + counter +".";
}
}
public String[] getName(int entryNumber)
{
if ( entryNumber >= -1 && entryNumber < counter )
{
String []Name = {data[entryNumber][0],data[entryNumber][1]};
//java sätter inte ihop data[entryNumber][0] och data[entryNumber][1]
//System.out.println(Name[0]+ " "+ Name[1]);
return Name;
}
else
{
String [] Name2 = {"John", "Doe"};
return Name2;
}
}
public Integer[] getBirthDate(int entryNumber) // entryNumber = j från Lab1.java
{
if( entryNumber >= -1 && entryNumber < counter )
{
Integer[] Birth = {Integer.parseInt(data[entryNumber][2]), Integer.parseInt(data[entryNumber][3]), Integer.parseInt(data[entryNumber][4])};
return Birth;
// parseInt, funktion för att göra string till int
}
else
{
Integer[] Birth2 = {1, 1, 1900}; // inga "" tecken här eftersom det inte är en sträng
return Birth2;
}
}
public String writeName(int number) // number = j från Lab1.java
{
//ropar på funktionen getName
String[] nameAndSurname = this.getName(number);
// this. betyder attt man anropar en fuktion på mig själv, dvs att den finns i Calender.java, samma object
String lowerCaseName = nameAndSurname[0].toLowerCase(); // förnamnet till små bokstäver
String upperCaseSurname = nameAndSurname[1].toUpperCase(); // efternamnet till stora bokstäver
Integer[] dateMonthYear = this.getBirthDate(number);
String Month = "bajs"; //denna labb är bajs
switch(dateMonthYear[1])
{
case 1: Month = "January" ; break;
case 2: Month = "February" ; break;
case 3: Month = "March" ; break;
case 4: Month = "April" ; break;
case 5: Month = "May" ; break;
case 6: Month = "June" ; break;
case 7: Month = "July" ; break;
case 8: Month = "August" ; break;
case 9: Month = "September" ; break;
case 10: Month = "October" ; break;
case 11: Month = "October" ; break;
case 12: Month = "December" ; break;
default: Month = " ERROR" ; break;
//det här kommer egentligen inte ske för att alla månader i databsen är mellan 1-12
// #good programming practice
}
String returningNames = String.format(lowerCaseName + " " + upperCaseSurname + " has birthday on the " + dateMonthYear[1]+ " "+ Month + " "+ dateMonthYear[2]);
// return lowerCaseName + " "+ upperCaseSurname + " " + dateMonthYear[1]+ " "+ Month + " "+ dateMonthYear[2];
return returningNames;
}
public void matchingYear(int year)
{
for (int i = 0; i < counter; i++)
{
Integer[]testingYear = this.getBirthDate(i);
int b = testingYear[2]; //aktuell persons födelseår
// year skickad från lab1.java
if( year == b)
{
System.out.println(this.writeName(i));
}
}
}
public void matchingSurname(String surname)
{
for(int i= 0; i < counter; i++)
{
String[] testingSurname = this.getName(i);
// turn everything to lowercase so names can match, utan hänsyn till stora/små bokstäver
String y = testingSurname[1].toLowerCase(); // aktuell persons efternamn
surname = surname.toLowerCase();
// Olika sätt att skriva samma if-sats
//if(surname.toLowerCase().equals(y.toLowerCase());
// surname.equalsIgnoreCase(y);
if(surname.equals(y))
{
System.out.println(this.writeName(i));
}
}
}
}