in reply to Testing for 16 possible combinations with 4 pull-down menus
It would be easy to extend this code sample to add in support for start/end seconds as well.# Tests the start_hour, start_minute, end_hour, and end_minute # pulldowns to verify that a consistent set of them have been # specified, and that the start time (if specified) is before # the end time. sub validate_date_pulldowns { if (defined(param('end_hour'))) { return 0 unless defined(param('start_hour')); return 0 if param('start_hour') > param('end_hour'); } if (defined(param('start_minute'))) { return 0 unless defined(param('start_hour')); } if (defined(param('end_minute'))) { return 0 unless defined(param('start_minute')); return 0 unless defined(param('end_hour')); return 0 if param('start_hour') == param('end_hour') and param('start_minute') > param('end_minute'); } return 1; }
Update: Note that the key idea is my strategy of turning many combinations of conditions into a set of "guard conditions" on which you exit early. I've found that this strategy often converts deep nested decision trees into a series of fairly straightforward decisions (as above).
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Testing for 16 possible combinations with 4 pull-down menus
by brian_d_foy (Abbot) on Dec 11, 2004 at 05:55 UTC | |
by tilly (Archbishop) on Dec 12, 2004 at 06:29 UTC |