summaryrefslogtreecommitdiffstats
path: root/kugar/lib/mutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kugar/lib/mutil.cpp')
-rw-r--r--kugar/lib/mutil.cpp127
1 files changed, 127 insertions, 0 deletions
diff --git a/kugar/lib/mutil.cpp b/kugar/lib/mutil.cpp
new file mode 100644
index 00000000..158d64e1
--- /dev/null
+++ b/kugar/lib/mutil.cpp
@@ -0,0 +1,127 @@
+/***************************************************************************
+ mutil.cpp - Kugar utlity class
+ -------------------
+ begin : Tue Aug 17 1999
+ copyright : (C) 1999 by Mutiny Bay Software
+ email : info@mutinybaysoftware.com
+ copyright : (C) 2002 Alexander Dymo
+ email : cloudtemple@mksat.net
+***************************************************************************/
+
+#include <math.h>
+
+#include "mutil.h"
+
+
+namespace Kugar
+{
+
+/** Formats a date using one of the pre-defined formats */
+QString MUtil::formatDate( const QDate& value, int format )
+{
+ QString string;
+ QString month, day, year;
+
+ // Reformat date parts - not necessarily required
+ month.setNum( value.month() );
+ day.setNum( value.day() );
+
+ // Add leading zeros to month and day
+ if ( value.month() < 10 )
+ month = "0" + month;
+ if ( value.day() < 10 )
+ day = "0" + day;
+
+ // Create a two digit year
+ year.setNum( value.year() );
+ year = year.right( 2 );
+
+ // Create the formatted date string
+ switch ( format )
+ {
+ case MUtil::MDY_SLASH:
+ string = QString( "%1/%2/%3" ).arg( value.month() ).arg( value.day() ).arg( year );
+ break;
+ case MUtil::MDY_DASH:
+ string = QString( "%1-%2-%3" ).arg( value.month() ).arg( value.day() ).arg( year );
+ break;
+ case MUtil::MMDDY_SLASH:
+ string = QString( "%1/%2/%3" ).arg( month ).arg( day ).arg( year );
+ break;
+ case MUtil::MMDDY_DASH:
+ string = QString( "%1-%2-%3" ).arg( month ).arg( day ).arg( year );
+ break;
+ case MUtil::MDYYYY_SLASH:
+ string = QString( "%1/%2/%3" ).arg( value.month() ).arg( value.day() ).arg( value.year() );
+ break;
+ case MUtil::MDYYYY_DASH:
+ string = QString( "%1-%2-%3" ).arg( value.month() ).arg( value.day() ).arg( value.year() );
+ break;
+ case MUtil::MMDDYYYY_SLASH:
+ string = QString( "%1/%2/%3" ).arg( month ).arg( day ).arg( value.year() );
+ break;
+ case MUtil::MMDDYYYY_DASH:
+ string = QString( "%1-%2-%3" ).arg( month ).arg( day ).arg( value.year() );
+ break;
+ case MUtil::YYYYMD_SLASH:
+ string = QString( "%1/%2/%3" ).arg( value.year() ).arg( value.month() ).arg( value.day() );
+ break;
+ case MUtil::YYYYMD_DASH:
+ string = QString( "%1-%2-%3" ).arg( value.year() ).arg( value.month() ).arg( value.day() );
+ break;
+ case MUtil::DDMMYY_PERIOD:
+ string = QString( "%1.%2.%3" ).arg( day ).arg( month ).arg( year );
+ break;
+ case MUtil::DDMMYYYY_PERIOD:
+ string = QString( "%1.%2.%3" ).arg( day ).arg( month ).arg( value.year() );
+ break;
+ default:
+ string = value.toString();
+ }
+ return string;
+}
+
+/** Returns the count for an array of doubles */
+int MUtil::count( QMemArray<double>* values )
+{
+ return values->size();
+}
+
+/** Returns the sum for an array of doubles */
+double MUtil::sum( QMemArray<double>* values )
+{
+ double tmpSum = 0.0;
+ int size = count( values );
+
+ for ( int i = 0; i < size; i++ )
+ tmpSum += values->at( i );
+
+ return tmpSum;
+}
+
+/** Returns the average value for an array of doubles */
+double MUtil::average( QMemArray<double>* values )
+{
+ return sum( values ) / count( values );
+}
+
+/** Returns the variance for an array of doubles */
+double MUtil::variance( QMemArray<double>* values )
+{
+ double tmpVar = 0.0;
+ double tmpAvg = average( values );
+ int size = count( values );
+
+ for ( int i = 0; i < size; i++ )
+ tmpVar += pow( ( values->at( i ) - tmpAvg ), 2 ) / size;
+
+ return tmpVar;
+}
+
+/** Returns the standard deviation for an array of doubles */
+double MUtil::stdDeviation( QMemArray<double>* values )
+{
+ return sqrt( variance( values ) );
+}
+
+}