Elapsed Time for specific month

6 vues (au cours des 30 derniers jours)
Seemab  Janjua
Seemab Janjua le 25 Nov 2015
Commenté : Seemab Janjua le 25 Nov 2015
i have dataset as follow 1976/1/30 20:45:48.81 1976/2/2 3:58:35.29 1976/2/3 10:3:31.11 1976/2/3 13:14:40.79 1976/2/6 16:24:49.9 1976/2/16 10:9:0 1976/3/16 10:9:36.8 1976/3/23 3:34:1.2 1976/3/26 5:12:39.4 1976/4/26 11:19:0 1976/4/26 11:19:26.77 1976/5/26 21:50:20 1976/5/2 5:1:14.5 1976/5/3 18:25:0 1976/6/3 18:25:17.25 1976/7/12 23:28:0 1976/7/12 23:28:20.7 1976/7/14 4:10:20 1976/7/19 14:14:8.12 1976/7/20 18:53:1.2 1976/7/22 20:52:0 1976/7/22 20:52:51.92 1976/7/23 15:58:18.92 1976/7/24 17:58:0 1976/8/24 17:58:39.35 1976/8/25 6:33:31.49 i want to group the data monthly.after that i want to find elapsed time of specific month, first time and last time... the data is from 1976 to 2013...

Réponse acceptée

Peter Perkins
Peter Perkins le 25 Nov 2015
Better in the future to attach a properly-formatted file.
Here's a solution, using a table, datetimes, and splitapply. The result is a duration in units of days:hours: minutes:seconds.
>> dstr = { ...
'1976/1/30 20:45:48.81'
'1976/2/2 3:58:35.29'
'1976/2/3 10:3:31.11'
'1976/2/3 13:14:40.79'
'1976/2/6 16:24:49.9'
'1976/2/16 10:9:0.0'
'1976/3/16 10:9:36.8'
'1976/3/23 3:34:1.2'
'1976/3/26 5:12:39.4'
'1976/4/26 11:19:0.0'
'1976/4/26 11:19:26.77'
'1976/5/26 21:50:20.0'
'1976/5/2 5:1:14.5'
'1976/5/3 18:25:0.0'
'1976/6/3 18:25:17.25'
'1976/7/12 23:28:0.0'
'1976/7/12 23:28:20.7'
'1976/7/14 4:10:20.0'
'1976/7/19 14:14:8.12'
'1976/7/20 18:53:1.2'
'1976/7/22 20:52:0.0'
'1976/7/22 20:52:51.92'
'1976/7/23 15:58:18.92'
'1976/7/24 17:58:0.0'
'1976/8/24 17:58:39.35'
'1976/8/25 6:33:31.49'};
>> timestamp = datetime(dstr,'InputFormat','uuuu/M/d H:m:s.SS');
>> timestamp.Format = 'uuuu/MM/dd HH:mm:ss.SS';
>> t = table;
>> [g,t.Year,t.Month] = findgroups(timestamp.Year,timestamp.Month);
>> t.Min = splitapply(@min,timestamp,g);
>> t.Max = splitapply(@max,timestamp,g);
>> t.Elapsed = t.Max - t.Min;
>> t.Elapsed.Format = 'dd:hh:mm:ss'
Year Month Min Max Elapsed
____ _____ ______________________ ______________________ ____________
1976 1 1976/01/30 20:45:48.81 1976/01/30 20:45:48.81 00:00:00
1976 2 1976/02/02 03:58:35.29 1976/02/16 10:09:00.00 14:06:10:24
1976 3 1976/03/16 10:09:36.80 1976/03/26 05:12:39.40 09:19:03:02
1976 4 1976/04/26 11:19:00.00 1976/04/26 11:19:26.77 00:00:26
1976 5 1976/05/02 05:01:14.50 1976/05/26 21:50:20.00 24:16:49:05
1976 6 1976/06/03 18:25:17.25 1976/06/03 18:25:17.25 00:00:00
1976 7 1976/07/12 23:28:00.00 1976/07/24 17:58:00.00 11:18:30:00
1976 8 1976/08/24 17:58:39.35 1976/08/25 06:33:31.49 12:34:52
Had to add ".0" to the strings that had no fractional seconds part.
  1 commentaire
Seemab  Janjua
Seemab Janjua le 25 Nov 2015
Sir,thanks for help...

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by