File:
[LON-CAPA] /
capa /
capa51 /
CapaTools /
duration.rpt.pl
Revision
1.3:
download - view:
text,
annotated -
select for diffs
Mon Aug 7 20:47:29 2000 UTC (24 years, 1 month ago) by
albertel
Branches:
MAIN
CVS tags:
version_2_9_X,
version_2_9_99_0,
version_2_9_1,
version_2_9_0,
version_2_8_X,
version_2_8_99_1,
version_2_8_99_0,
version_2_8_2,
version_2_8_1,
version_2_8_0,
version_2_7_X,
version_2_7_99_1,
version_2_7_99_0,
version_2_7_1,
version_2_7_0,
version_2_6_X,
version_2_6_99_1,
version_2_6_99_0,
version_2_6_3,
version_2_6_2,
version_2_6_1,
version_2_6_0,
version_2_5_X,
version_2_5_99_1,
version_2_5_99_0,
version_2_5_2,
version_2_5_1,
version_2_5_0,
version_2_4_X,
version_2_4_99_0,
version_2_4_2,
version_2_4_1,
version_2_4_0,
version_2_3_X,
version_2_3_99_0,
version_2_3_2,
version_2_3_1,
version_2_3_0,
version_2_2_X,
version_2_2_99_1,
version_2_2_99_0,
version_2_2_2,
version_2_2_1,
version_2_2_0,
version_2_1_X,
version_2_1_99_3,
version_2_1_99_2,
version_2_1_99_1,
version_2_1_99_0,
version_2_1_3,
version_2_1_2,
version_2_1_1,
version_2_1_0,
version_2_12_X,
version_2_11_X,
version_2_11_5_msu,
version_2_11_5,
version_2_11_4_uiuc,
version_2_11_4_msu,
version_2_11_4,
version_2_11_3_uiuc,
version_2_11_3_msu,
version_2_11_3,
version_2_11_2_uiuc,
version_2_11_2_msu,
version_2_11_2_educog,
version_2_11_2,
version_2_11_1,
version_2_11_0_RC3,
version_2_11_0_RC2,
version_2_11_0_RC1,
version_2_11_0,
version_2_10_X,
version_2_10_1,
version_2_10_0_RC2,
version_2_10_0_RC1,
version_2_10_0,
version_2_0_X,
version_2_0_99_1,
version_2_0_2,
version_2_0_1,
version_2_0_0,
version_1_99_3,
version_1_99_2,
version_1_99_1_tmcc,
version_1_99_1,
version_1_99_0_tmcc,
version_1_99_0,
version_1_3_X,
version_1_3_3,
version_1_3_2,
version_1_3_1,
version_1_3_0,
version_1_2_X,
version_1_2_99_1,
version_1_2_99_0,
version_1_2_1,
version_1_2_0,
version_1_1_X,
version_1_1_99_5,
version_1_1_99_4,
version_1_1_99_3,
version_1_1_99_2,
version_1_1_99_1,
version_1_1_99_0,
version_1_1_3,
version_1_1_2,
version_1_1_1,
version_1_1_0,
version_1_0_99_3,
version_1_0_99_2,
version_1_0_99_1,
version_1_0_99,
version_1_0_3,
version_1_0_2,
version_1_0_1,
version_1_0_0,
version_0_99_5,
version_0_99_4,
version_0_99_3,
version_0_99_2,
version_0_99_1,
version_0_99_0,
version_0_6_2,
version_0_6,
version_0_5_1,
version_0_5,
version_0_4,
stable_2002_spring,
stable_2002_july,
stable_2002_april,
stable_2001_fall,
release_5-1-3,
loncapaMITrelate_1,
language_hyphenation_merge,
language_hyphenation,
conference_2003,
bz6209-base,
bz6209,
STABLE,
HEAD,
GCI_3,
GCI_2,
GCI_1,
CAPA_5-1-6,
CAPA_5-1-5,
CAPA_5-1-4_RC1,
BZ4492-merge,
BZ4492-feature_horizontal_radioresponse,
BZ4492-feature_Support_horizontal_radioresponse,
BZ4492-Support_horizontal_radioresponse
- fixed license notices the reference the GNU GPL rather than the GNU LGPL
1: #!/usr/local/bin/perl
2: # duration statistics for telnet portions of CAPA
3: # Copyright (C) 1992-2000 Michigan State University
4: #
5: # The CAPA system is free software; you can redistribute it and/or
6: # modify it under the terms of the GNU General Public License as
7: # published by the Free Software Foundation; either version 2 of the
8: # License, or (at your option) any later version.
9: #
10: # The CAPA system is distributed in the hope that it will be useful,
11: # but WITHOUT ANY WARRANTY; without even the implied warranty of
12: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: # General Public License for more details.
14: #
15: # You should have received a copy of the GNU General Public
16: # License along with the CAPA system; see the file COPYING. If not,
17: # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18: # Boston, MA 02111-1307, USA.
19: #
20: # As a special exception, you have permission to link this program
21: # with the TtH/TtM library and distribute executables, as long as you
22: # follow the requirements of the GNU GPL in regard to all of the
23: # software in the executable aside from TtH/TtM.
24:
25:
26: require('getopts.pl');
27:
28: sub S_Enterpath {
29: local($notdone,$path);
30:
31: $notdone = 1;
32: while ($notdone) {
33: print "Please enter the CLASS absolute path:\n";
34: $path = <>; chomp($path);
35: if( $path =~ /\/$/ ) {
36: $Rfullpath = "$path" . "records";
37: $Dfullpath = "$path" . "records/duration.db";
38:
39: } else {
40: $Rfullpath = "$path" . "/records";
41: $Dfullpath = "$path" . "/records/duration.db";
42:
43: }
44: if( -d $path ) {
45: if( -d $Rfullpath ) {
46: if( -f $Dfullpath ) {
47: $notdone = 0;
48: } else {
49: print "File [$Dfullpath] does not exist!\n";
50: }
51: } else {
52: print "Directory [$Rfullpath] does not exist!\n";
53: }
54: } else {
55: print "Directory [$path] does not exist!\n";
56: }
57:
58: }
59: return ($path);
60: }
61:
62: sub S_ScanDB {
63: local($filename)=@_;
64: local($line_cnt)=0;
65: local($s_num,$tty,$b_date,$e_date);
66: local($hr,$mm,$ss,$ss_cnt);
67: local($i, $j, @S_cnt);
68: local($ylow, $yavg, $yhigh);
69: open(IN, "<$filename") || die "Cannot open $filename file!";
70: open(OUT, ">$Out_file") || die "Cannot open $Out_file file!";
71: $min_sec = 1000;
72: while (<IN>) {
73: $line_cnt++;
74: chomp();
75: ($s_num,$tty,$b_date,$e_date) = split(/\t/);
76: if( $line_cnt == 1 ) {
77: $start_time = $b_date;
78: }
79: ($hr,$mm,$ss,$ylow) = S_DiffDate($start_time,$b_date);
80: ($hr,$mm,$ss,$yhigh) = S_DiffDate($start_time,$e_date);
81: $yavg = ($ylow + $yhigh) / 2;
82: $ss_cnt = $yhigh - $ylow;
83: $min_sec = ($min_sec < $ss_cnt ? $min_sec : $ss_cnt);
84: $s_idx = int($ss_cnt / 100);
85: $S_cnt[$s_idx]++;
86: print OUT "$line_cnt\t$yavg\t$ylow\t$yhigh\n";
87: # print "$s_num,($hr:$mm:$ss,$ss_cnt)\n";
88:
89: }
90: close(IN) || die "Cannot close $filename file!";
91: close(OUT) || die "Cannot close $Out_file file!";
92:
93: print "minimal number of seconds = $min_sec\n";
94: for($i=0;$i<=$#S_cnt;$i++) {
95: $j= $i * 100;
96: print "$j\t$S_cnt[$i]\n" if $S_cnt[$i] > 0;
97: }
98: print "minimal number of seconds = $min_sec\n";
99: }
100: ## 012345678901
101: ## Wed Jan 8 14:38:06 1997
102: ## Fri Jan 17 00:34:30 1997,Fri Jan 17 00:36:25 1997
103: %Mon = ( 'Jan' => 0, 'Feb' => 1, 'Mar' => 2, 'Apr' => 3, 'May' => 4, 'Jun' => 5,
104: 'Jul' => 6, 'Aug' => 7, 'Sep' => 8, 'Oct' => 9, 'Nov' => 10, 'Dec' => 11 );
105: @mdoy = ( 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365);
106:
107: sub S_DiffDate {
108: local($a_str,$b_str)=@_;
109: local($hrmmss_astr,$hrmmss_bstr);
110: local($modd_astr,$modd_bstr);
111: local($mo_a,$dd_a,$hr_a,$mm_a,$ss_a);
112: local($mo_b,$dd_b,$hr_b,$mm_b,$ss_b);
113: local($sec_cnt);
114: local($dsec,$dmm,$dmm_cnt,$dhr_cnt);
115:
116: $modd_astr = substr($a_str,4,6);
117: $hrmmss_astr = substr($a_str,11,8);
118: $modd_bstr = substr($b_str,4,6);
119: $hrmmss_bstr = substr($b_str,11,8);
120: $mo_a = substr($modd_astr,0,3); $dd_a = substr($modd_astr,4,2);
121: $mo_b = substr($modd_bstr,0,3); $dd_b = substr($modd_bstr,4,2);
122: ($hr_a,$mm_a,$ss_a) = split(/:/, $hrmmss_astr);
123: ($hr_b,$mm_b,$ss_b) = split(/:/, $hrmmss_bstr);
124: $adoy = $mdoy[$Mon{$mo_a}] + $dd_a;
125: $bdoy = $mdoy[$Mon{$mo_b}] + $dd_b;
126: $sec_cnt = ($bdoy - $adoy)*24*60*60 + ($hr_b - $hr_a)*60*60 + ($mm_b - $mm_a)*60 + ($ss_b-$ss_a);
127: $dsec = $sec_cnt % 60;
128: $dmm_cnt = ($sec_cnt - $dsec) / 60;
129: $dmm = $dmm_cnt % 60;
130: $dhr_cnt = ($dmm_cnt - $dmm) / 60;
131:
132: return ($dhr_cnt,$dmm,$dsec,$sec_cnt);
133: }
134:
135:
136: $Out_file = '/usr/user1/capadvt/CAPA_SRC/4.5/pProj/dur.out';
137:
138:
139: S_Enterpath();
140:
141: S_ScanDB("$Dfullpath");
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>