How to accept time from the user into a matrix?

1 view (last 30 days)
I want to accept (say)3 time elements for example 8:30, 8:20 & 8:00 from user and store it in an array using 'datenum'. How can i achieve that? Please help.
  1 Comment
Febin Benjamin
Febin Benjamin on 28 Jun 2014
I have worked out my version here if anyone needs it in future.
dateNumArray = []; %// Store datenums here
%// Enter a blank line to quit this loop
while true
timestr = input('Enter a time: ', 's');
if (isempty(timestr))
break;
end
%// Split the string up at the ':'
splitStr = strsplit(timestr, ':');
%// Read in the current date as a vector
%// Format of: [Year, Month, Day, Hour, Minute, Second]
timeRead = clock;
%// Replace hours and minutes with user prompt
%// Zero the seconds
timeRead(4:6) = [str2num(splitStr{1}) str2num(splitStr{2}) 0];
%// Convert to datenum format
dateNumArray = [dateNumArray datenum(timeRead)];
end

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 28 Jun 2014
d=input('choose 3 time in this form 8:00 8:30 9:00 ','s')
e=datenum(regexp(d,'\S+','match'))
  2 Comments
Febin Benjamin
Febin Benjamin on 28 Jun 2014
Azzi does your code mean that user can input only 3 specified time elements i.e 8:00 8:30 9:00? No right? User should be able to enter any time (e.g. 4:45 5:56 8:00).
Azzi Abdelmalek
Azzi Abdelmalek on 28 Jun 2014
No , he can enter any number of time he wants, just choose your message

Sign in to comment.

More Answers (0)

Categories

Find more on Dates and Time in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!