The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Suggestion for easy web data-entry?


Do you have any suggestion about a good design of web-based data-entry for time-in and time-out?

The user must enter e.g. 10:30 am (time-in) and 11:35 am (time-out). Is it better to separate the [am/pm] with a drop-down or combine them on signle-entry. btw. my validation is on the server-side. What do you suggest? I'm not yet confortable with Javascript.

Thanks for any response.
Thursday, July 12, 2007
just use a flexible textbox - the less clicking/tabbing required the better. Support basic formats, 24 hour etc. Provide some sample input strings...
A big mistake I see alot with dates is drop downs for each date/time element. Just let the users type it in and do the validation - they will learn quickly!
PK Software Send private email
Thursday, July 12, 2007
BTW - if you are using .Net for example, the DateTime.Parse method is pretty flexible...
PK Software Send private email
Thursday, July 12, 2007
Make them enter "military time", e.g. 10:30 pm = 22:30.

Even better, have a drop down list of every possible time down to the second.  24 hours x 60 minutes x 60 seconds = 86,400 options on the list.

Stupid users.  Who needs 'em, anyway?
IRS Programmer
Friday, July 13, 2007
Show an analog clock and have the user set the time by dragging the hands.

No, seriously, use a single text box as PK Software suggests. Philosophically, avoid error messages as much as possible, and instead make _some_ interpretation of the user input and echo it back to them in the proper format as they type or when they leave the text box. You may want to re-think avoiding Javascript. Ideally, it should work like this:
1. Any letters other than ‘a,’ ‘p,’ and ‘m’ are ignored –preferably don’t even show them in the text box as the user types them.
2. Treat any special character (include the space) as a delimiter between minutes and hours. It doesn’t have to be entered as a ‘:’, but it should be corrected to an ‘:’ on echo back.
3. The first one or two contiguous numbers are the hours. The next 1 or 2 numbers (if any) are minutes. Ignore any numbers after the first 4 (assuming you’ve no need to record to the nearest second).
4. Do not require that leading zeros, delimiters, or minutes be entered, but allow for them.
a. If only one or two contiguous numbers are entered, they’re the hour. The minutes should default to 00 (“9am” -> “9:00am”).
b. If 3 contiguous numbers are entered, the first is the hour, and the next two are minutes (“125 pm” -> “1:25pm”).
c. If 4 contiguous numbers are entered, the first two are the hour, and the next two are minutes (“0930” -> “9:30am”.
5. An ‘a’ typed anywhere makes the time AM. A ‘p’ typed anywhere makes it PM. There should be no case sensitivity (“3p” -> “3:00pm”).
6. Support entry of 24 hour times (e.g., “17” -> “5:00pm”)
7. If no ‘a’ or ‘p’ is entered and the hour is 12 or less, default the time-in to “am” (unless the vast majority of users clock-in in the afternoon). Default the time-out to the earliest time that is later than the time-in (e.g., in at “8” and out at “5” -> “8:00am” and “5:00pm”.
8. If the user is entering a whole lot of times (e.g., as a clerk transcribing a sign-in sheet), consider making ‘+’ toggle between AM and PM (“6.15+” -> “6:15pm”). This combined with the rules above allows the user to enter all times without the hand leaving the number pad.
Michael Zuschlag Send private email
Friday, July 13, 2007
You may find this guy's work useful (it sure inspired me):

He basically tried to emulate the ridiculous degree of robustness the Microsoft Outlook date parser has.

Apparently Outlook can make sense of a date like "2 days from now + 2 weeks + 1 month".  You probably don't want to go that far.
Friday, July 13, 2007
If you have a 'Start Shift' buton and a 'End Shift' button when they start/end work, capture the time they did it, no format hassles.

Regards John

Friday, July 20, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz