F677fa685a2cfe8aff31f161062db3d3

I'm wondering if theres some way to write a loop to create cases within a switch statement. Within this loop, I'm assuming you would be able to generate the times in the following format: 7:00AM, 8:00Am...etc? Any input is greatly appreciated.

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
    switch(timeArray[0]){
        case 1: var start_time = '7:00AM ';
        break;
        case 2: var start_time = '8:00AM ';
        break;
        case 3: var start_time = '9:00AM ';
        break;
        case 4: var start_time = '10:00AM '; 
        break;
        case 5: var start_time = '11:00AM ';
        break;
        case 6: var start_time = '12:00PM ';
        break;
        case 7: var start_time = '1:00PM ';
        break;
        case 8: var start_time = '2:00PM ';
        break;
        case 9: var start_time = '3:00PM ';
        break;
        case 10: var start_time = '4:00PM ';
        break;
        case 11: var start_time = '5:00PM ';
        break;
        case 12: var start_time = '6:00PM ';
        break;
        case 13: var start_time = '7:00PM ';
        break;
        default: var start_time = 'error';
    }

Refactorings

No refactoring yet !

5071c5b861341c0dcfcf6ac86327701f

Tien Dung

December 11, 2008, December 11, 2008 08:35, permalink

1 rating. Login to rate!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
times = [
  null,
  '7:00AM ',
  '8:00AM ',
  '9:00AM ',
  '10:00AM ',
  '11:00AM ',
  '12:00PM ',
  '1:00PM ',
  '2:00PM ',
  '3:00PM ',
  '4:00PM ',
  '5:00PM ',
  '6:00PM ',
  '7:00PM '
]

var start_time = times[timeArray[0]] || 'error';
A8d3f35baafdaea851914b17dae9e1fc

Adam

December 11, 2008, December 11, 2008 19:37, permalink

No rating. Login to rate!

Just playin' around.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function BusinessHour(t) {
    this.inRange = function() {
        return t > 0 && t < 14;
    }

    this.hour = function() {
        return ((t + 5) % 12) + 1;
    }

    this.meridian = function() {
        return ((t + 5) % 23) - 10 > 0 ? 'PM' : 'AM';
    }

    this.toString = function() {
        if (this.inRange()) {
            return this.hour() + ':00' + this.meridian() + ' ';
        } else {
            return 'error';
        }
    }
}

var start_time = new BusinessHour(timeArray[0]);
D5f67b89d9e8ed1e05c400c9a198fce3

Garren

December 24, 2008, December 24, 2008 00:37, permalink

No rating. Login to rate!

Adam - nice.

1
2
3
4
5
6
7
8
9
10
11
12
function PrintHour(hour) {
   var o = hour + 5; 
   return ((o%12) + 1) + ":00" + (((o%23) - 10) > 0 ? "P" : "A") + "M";
};

function GenFunc(from,to) {
   return function(val) {
      return ( val > from && val < to ) ? PrintHour(val) : "error";
   }
};

var start_time = (BusinessHour(0,14))(timeArray[0]);
D5f67b89d9e8ed1e05c400c9a198fce3

Garren

December 24, 2008, December 24, 2008 00:40, permalink

No rating. Login to rate!

oops BusinessHour should be GenFunc...

1
2
3
4
5
6
7
8
9
10
11
12
function PrintHour(hour) {
   var o = hour + 5; 
   return ((o%12) + 1) + ":00" + (((o%23) - 10) > 0 ? "P" : "A") + "M";
};

function GenFunc(from,to) {
   return function(val) {
      return ( val > from && val < to ) ? PrintHour(val) : "error";
   }
};

var start_time = (GenFunc(0,14))(timeArray[0]);
D2d66ecf0167dad4dda98a05cb6dee66

dd

December 26, 2008, December 26, 2008 16:39, permalink

No rating. Login to rate!
1
2
3
4
5
6
7
8
9
10
11
12
function PrintHour(hour) {
   var o = hour + 5; 
   return ((o%12) + 1) + ":00" + (((o%23) - 10) > 0 ? "P" : "A") + "M";
};

function GenFunc(from,to) {
   return function(val) {
      return ( val > from && val < to ) ? PrintHour(val) : "error";
   }
};

var start_time = (BusinessHour(0,14))(timeArray[0]);

Your refactoring





Format Copy from initial code

or Cancel