I wrote the following code that first generates a random value between 0-23 (which this value indicates the time of the day 0 means 00:00 am). Then it generates a second value between 0-6 which indicates the day where 0 means Sunday and 6 mean Saturday. After initials the time of day and the day of the week, A method speed will be called to get the speed of the car at that specific time. Is there any other way to improve the way of writing this code.
main method:
Random r = new Random();
int time_of_day = r.nextInt(24) + 0;
int day_of_week = r.nextInt(7) + 0;
Speed method:
public static double speed(int time_of_day, int day_of_week) {
double speed = 0;
switch(time_of_day) {
case 0: // 00:00 am
if (day_of_week==0) { //Sun
speed = 24.9;
}else if (day_of_week==1) { // Mon
speed = 26.5;
}else if (day_of_week==2) {// Tues
speed = 26.25;
}else if (day_of_week==3) {// Wed
speed = 27;
}else if (day_of_week==4) {// Thur
speed = 26.25;
}else if (day_of_week==5) {// Fri
speed = 26.25;
}else if (day_of_week==6) {// Sat
speed = 26.25;
}
break;
case 1: // 01:00 am
if (day_of_week==0) {
speed = 25.75;
}else if (day_of_week==1) {
speed = 26.6;
}else if (day_of_week==2) {
speed = 27;
}else if (day_of_week==3) {
speed = 27.1;
}else if (day_of_week==4) {
speed = 26.8;
}else if (day_of_week==5) {
speed = 26.4;
}else if (day_of_week==6) {
speed = 26.75;
}
break;
case 2: // 02:00 am
if (day_of_week==0) {
speed = 26.1;
}else if (day_of_week==1) {
speed = 27.25;
}else if (day_of_week==2) {
speed = 26.35;
}else if (day_of_week==3) {
speed = 26.9;
}else if (day_of_week==4) {
speed = 26.5;
}else if (day_of_week==5) {
speed = 26.55;
}else if (day_of_week==6) {
speed = 26.75;
}
break;
case 3: // 03:00 am
if (day_of_week==0) {
speed = 25.9;
}else if (day_of_week==1) {
speed = 27.2;
}else if (day_of_week==2) {
speed = 27.25;
}else if (day_of_week==3) {
speed = 26.9;
}else if (day_of_week==4) {
speed = 26.75;
}else if (day_of_week==5) {
speed = 26.75;
}else if (day_of_week==6) {
speed = 26.75;
}
break;
case 4: // 04:00 am
if (day_of_week==0) {
speed = 27;
}else if (day_of_week==1) {
speed = 27;
}else if (day_of_week==2) {
speed = 27.25;
}else if (day_of_week==3) {
speed = 27.5;
}else if (day_of_week==4) {
speed = 27.9;
}else if (day_of_week==5) {
speed = 26.95;
}else if (day_of_week==6) {
speed = 27;
}
break;
case 5: // 05:00 am
if (day_of_week==0) {
speed = 28.5;
}else if (day_of_week==1) {
speed = 28.5;
}else if (day_of_week==2) {
speed = 27.75;
}else if (day_of_week==3) {
speed = 27.5;
}else if (day_of_week==4) {
speed = 27.25;
}else if (day_of_week==5) {
speed = 28;
}else if (day_of_week==6) {
speed = 28.5;
}
break;
case 6: // 06:00 am
if (day_of_week==0) {
speed = 27.6; //here
}else if (day_of_week==1) {
speed = 23.5;
}else if (day_of_week==2) {
speed = 23.5;
}else if (day_of_week==3) {
speed = 23.5;
}else if (day_of_week==4) {
speed = 23.25;
}else if (day_of_week==5) {
speed = 23.5;
}else if (day_of_week==6) {
speed = 27.6;
}
break;
case 7: // 07:00 am
if (day_of_week==0) { //S
speed = 27.5; //here
}else if (day_of_week==1) {//M
speed = 20.5;
}else if (day_of_week==2) {//T
speed = 20.15;
}else if (day_of_week==3) {//W
speed = 20.15;
}else if (day_of_week==4) {//T
speed = 20.5;
}else if (day_of_week==5) {//F
speed = 23.8;
}else if (day_of_week==6) {//S
speed = 27.5;
}
break;
case 8: // 08:00 am
if (day_of_week==0) { //S
speed = 26; //here
}else if (day_of_week==1) {//M
speed = 21.5;
}else if (day_of_week==2) {//T
speed = 20.75;
}else if (day_of_week==3) {//W
speed = 21.10;
}else if (day_of_week==4) {//T
speed = 21.10;
}else if (day_of_week==5) {//F
speed = 22.10;
}else if (day_of_week==6) {//S
speed = 25;
}
break;
case 9: // 09:00 am
if (day_of_week==0) { //S
speed = 25.5; //here
}else if (day_of_week==1) {//M
speed = 22.6;
}else if (day_of_week==2) {//T
speed = 21.75;
}else if (day_of_week==3) {//W
speed = 22.40;
}else if (day_of_week==4) {//T
speed = 22;
}else if (day_of_week==5) {//F
speed = 22.15;
}else if (day_of_week==6) {//S
speed = 23.40;
}
break;
case 10: // 10:00 am
if (day_of_week==0) { //S
speed = 24; //here
}else if (day_of_week==1) {//M
speed = 22.25;
}else if (day_of_week==2) {//T
speed = 21.8;
}else if (day_of_week==3) {//W
speed = 22.5;
}else if (day_of_week==4) {//T
speed = 22.25;
}else if (day_of_week==5) {//F
speed = 22.25;
}else if (day_of_week==6) {//S
speed = 22;
}
break;
case 11: // 11:00 am
if (day_of_week==0) { //S
speed = 23; //here
}else if (day_of_week==1) {//M
speed = 22;
}else if (day_of_week==2) {//T
speed = 22;
}else if (day_of_week==3) {//W
speed = 22.25;
}else if (day_of_week==4) {//T
speed = 21.25;
}else if (day_of_week==5) {//F
speed = 21.25;
}else if (day_of_week==6) {//S
speed = 21;
}
break;
case 12: // 12:00 Pm
if (day_of_week==0) { //S
speed = 21.90; //here
}else if (day_of_week==1) {//M
speed = 22.25;
}else if (day_of_week==2) {//T
speed = 21.90;
}else if (day_of_week==3) {//W
speed = 21.75;
}else if (day_of_week==4) {//T
speed = 21.50;
}else if (day_of_week==5) {//F
speed = 21.10;
}else if (day_of_week==6) {//S
speed = 20.75;
}
break;
case 13: // 13:00 Pm
if (day_of_week==0) { //S
speed = 22.5; //here
}else if (day_of_week==1) {//M
speed = 21.5;
}else if (day_of_week==2) {//T
speed = 21.45;
}else if (day_of_week==3) {//W
speed = 20.95;
}else if (day_of_week==4) {//T
speed = 21;
}else if (day_of_week==5) {//F
speed = 20.8;
}else if (day_of_week==6) {//S
speed = 20.9;
}
break;
case 14: // 14:00 Pm
if (day_of_week==0) { //S
speed = 22.4; //here
}else if (day_of_week==1) {//M
speed = 21.10;
}else if (day_of_week==2) {//T
speed = 20.5;
}else if (day_of_week==3) {//W
speed = 20.90;
}else if (day_of_week==4) {//T
speed = 20.25;
}else if (day_of_week==5) {//F
speed = 20;
}else if (day_of_week==6) {//S
speed = 20.25;
}
break;
case 15: // 15:00 Pm
if (day_of_week==0) { //S
speed = 22.75; //here
}else if (day_of_week==1) {//M
speed = 21;
}else if (day_of_week==2) {//T
speed = 20;
}else if (day_of_week==3) {//W
speed = 20.75;
}else if (day_of_week==4) {//T
speed = 20.10;
}else if (day_of_week==5) {//F
speed = 19.3;
}else if (day_of_week==6) {//S
speed = 20.95;
}
break;
case 16:
if (day_of_week==0) { //S
speed = 23; //here
}else if (day_of_week==1) {//M
speed = 20.60;
}else if (day_of_week==2) {//T
speed = 20;
}else if (day_of_week==3) {//W
speed = 20;
}else if (day_of_week==4) {//T
speed = 20.15;
}else if (day_of_week==5) {//F
speed = 19.75;
}else if (day_of_week==6) {//S
speed = 22;
}
break;
case 17:
if (day_of_week==0) { //S
speed = 23.90; //here
}else if (day_of_week==1) {//M
speed = 22;
}else if (day_of_week==2) {//T
speed = 20.5;
}else if (day_of_week==3) {//W
speed = 20.5;
}else if (day_of_week==4) {//T
speed = 20.5;
}else if (day_of_week==5) {//F
speed = 21.25;
}else if (day_of_week==6) {//S
speed = 22.10;
}
break;
case 18:
if (day_of_week==0) { //S
speed = 23.75; //here
}else if (day_of_week==1) {//M
speed = 22.5;
}else if (day_of_week==2) {//T
speed = 22;
}else if (day_of_week==3) {//W
speed = 22;
}else if (day_of_week==4) {//T
speed = 22;
}else if (day_of_week==5) {//F
speed = 21.75;
}else if (day_of_week==6) {//S
speed = 23;
}
break;
case 19:
if (day_of_week==0) { //S
speed = 24.4; //here
}else if (day_of_week==1) {//M
speed = 24;
}else if (day_of_week==2) {//T
speed = 23.75;
}else if (day_of_week==3) {//W
speed = 23.5;
}else if (day_of_week==4) {//T
speed = 23;
}else if (day_of_week==5) {//F
speed = 22.25;
}else if (day_of_week==6) {//S
speed = 23.10;
}
break;
case 20:
if (day_of_week==0) { //S
speed = 25; //here
}else if (day_of_week==1) {//M
speed = 24.5;
}else if (day_of_week==2) {//T
speed = 24.25;
}else if (day_of_week==3) {//W
speed = 24.25;
}else if (day_of_week==4) {//T
speed = 24;
}else if (day_of_week==5) {//F
speed = 23.6;
}else if (day_of_week==6) {//S
speed = 24.0;
}
break;
case 21:
if (day_of_week==0) { //S
speed = 25; //here
}else if (day_of_week==1) {//M
speed = 25;
}else if (day_of_week==2) {//T
speed = 24.5;
}else if (day_of_week==3) {//W
speed = 24.5;
}else if (day_of_week==4) {//T
speed = 24.25;
}else if (day_of_week==5) {//F
speed = 24.25;
}else if (day_of_week==6) {//S
speed = 24.20;
}
break;
case 22:
if (day_of_week==0) { //S
speed = 25.75; //here
}else if (day_of_week==1) {//M
speed = 26;
}else if (day_of_week==2) {//T
speed = 25.80;
}else if (day_of_week==3) {//W
speed = 25.20;
}else if (day_of_week==4) {//T
speed = 24.5;
}else if (day_of_week==5) {//F
speed = 24.5;
}else if (day_of_week==6) {//S
speed = 24.5;
}
break;
case 23:
if (day_of_week==0) { //S
speed = 26.5; //here
}else if (day_of_week==1) {//M
speed = 26.40;
}else if (day_of_week==2) {//T
speed = 25.75;
}else if (day_of_week==3) {//W
speed = 26;
}else if (day_of_week==4) {//T
speed = 25;
}else if (day_of_week==5) {//F
speed = 25;
}else if (day_of_week==6) {//S
speed = 24.45;
}
break;
}
return speed;}
Edit: The issue has been discussed in another thread. However, I was looking for a way to combine switch and nested if statements together in an optimisation way.