ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
PHPExcel_Calculation_DateTime Class Reference
+ Collaboration diagram for PHPExcel_Calculation_DateTime:

Static Public Member Functions

static _isLeapYear ($year)
static _getDateValue ($dateValue)
 _getDateValue
static DATETIMENOW ()
 DATETIMENOW.
static DATENOW ()
 DATENOW.
static DATE ($year=0, $month=1, $day=1)
 DATE.
static TIME ($hour=0, $minute=0, $second=0)
 TIME.
static DATEVALUE ($dateValue=1)
 DATEVALUE.
static TIMEVALUE ($timeValue)
 TIMEVALUE.
static DATEDIF ($startDate=0, $endDate=0, $unit= 'D')
 DATEDIF.
static DAYS360 ($startDate=0, $endDate=0, $method=false)
 DAYS360.
static YEARFRAC ($startDate=0, $endDate=0, $method=0)
 YEARFRAC.
static NETWORKDAYS ($startDate, $endDate)
 NETWORKDAYS.
static WORKDAY ($startDate, $endDays)
 WORKDAY.
static DAYOFMONTH ($dateValue=1)
 DAYOFMONTH.
static DAYOFWEEK ($dateValue=1, $style=1)
 DAYOFWEEK.
static WEEKOFYEAR ($dateValue=1, $method=1)
 WEEKOFYEAR.
static MONTHOFYEAR ($dateValue=1)
 MONTHOFYEAR.
static YEAR ($dateValue=1)
 YEAR.
static HOUROFDAY ($timeValue=0)
 HOUROFDAY.
static MINUTEOFHOUR ($timeValue=0)
 MINUTEOFHOUR.
static SECONDOFMINUTE ($timeValue=0)
 SECONDOFMINUTE.
static EDATE ($dateValue=1, $adjustmentMonths=0)
 EDATE.
static EOMONTH ($dateValue=1, $adjustmentMonths=0)
 EOMONTH.

Static Private Member Functions

static _dateDiff360 ($startDay, $startMonth, $startYear, $endDay, $endMonth, $endYear, $methodUS)
static _getTimeValue ($timeValue)
 _getTimeValue
static _adjustDateByMonths ($dateValue=0, $adjustmentMonths=0)

Detailed Description

Definition at line 46 of file DateTime.php.

Member Function Documentation

static PHPExcel_Calculation_DateTime::_adjustDateByMonths (   $dateValue = 0,
  $adjustmentMonths = 0 
)
staticprivate

Definition at line 116 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHPObject().

Referenced by EDATE(), and EOMONTH().

{
// Execute function
$PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue);
$oMonth = (int) $PHPDateObject->format('m');
$oYear = (int) $PHPDateObject->format('Y');
$adjustmentMonthsString = (string) $adjustmentMonths;
if ($adjustmentMonths > 0) {
$adjustmentMonthsString = '+'.$adjustmentMonths;
}
if ($adjustmentMonths != 0) {
$PHPDateObject->modify($adjustmentMonthsString.' months');
}
$nMonth = (int) $PHPDateObject->format('m');
$nYear = (int) $PHPDateObject->format('Y');
$monthDiff = ($nMonth - $oMonth) + (($nYear - $oYear) * 12);
if ($monthDiff != $adjustmentMonths) {
$adjustDays = (int) $PHPDateObject->format('d');
$adjustDaysString = '-'.$adjustDays.' days';
$PHPDateObject->modify($adjustDaysString);
}
return $PHPDateObject;
} // function _adjustDateByMonths()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::_dateDiff360 (   $startDay,
  $startMonth,
  $startYear,
  $endDay,
  $endMonth,
  $endYear,
  $methodUS 
)
staticprivate

Definition at line 53 of file DateTime.php.

Referenced by DAYS360().

{
if ($startDay == 31) {
--$startDay;
} elseif ($methodUS && ($startMonth == 2 && ($startDay == 29 || ($startDay == 28 && !self::_isLeapYear($startYear))))) {
$startDay = 30;
}
if ($endDay == 31) {
if ($methodUS && $startDay != 30) {
$endDay = 1;
if ($endMonth == 12) {
++$endYear;
$endMonth = 1;
} else {
++$endMonth;
}
} else {
$endDay = 30;
}
}
return $endDay + $endMonth * 30 + $endYear * 360 - $startDay - $startMonth * 30 - $startYear * 360;
} // function _dateDiff360()

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::_getDateValue (   $dateValue)
static

_getDateValue

Parameters
string$dateValue
Returns
mixed Excel date/time serial value, or string if error

Definition at line 83 of file DateTime.php.

References PHPExcel_Shared_Date\$dateTimeObjectType, PHPExcel_Calculation_Functions\COMPATIBILITY_GNUMERIC, DATEVALUE(), PHPExcel_Calculation_Functions\getCompatibilityMode(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Shared_Date\PHPToExcel(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\setReturnDateType(), and PHPExcel_Calculation_Functions\VALUE().

Referenced by PHPExcel_Calculation_Financial\COUPDAYBS(), PHPExcel_Calculation_Financial\COUPDAYS(), PHPExcel_Calculation_Financial\COUPDAYSNC(), PHPExcel_Calculation_Financial\COUPNCD(), PHPExcel_Calculation_Financial\COUPNUM(), PHPExcel_Calculation_Financial\COUPPCD(), PHPExcel_Calculation_Financial\PRICE(), PHPExcel_Calculation_Financial\TBILLEQ(), PHPExcel_Calculation_Financial\TBILLPRICE(), and PHPExcel_Calculation_Financial\TBILLYIELD().

{
if (!is_numeric($dateValue)) {
}
if ((is_object($dateValue)) && ($dateValue instanceof PHPExcel_Shared_Date::$dateTimeObjectType)) {
$dateValue = PHPExcel_Shared_Date::PHPToExcel($dateValue);
} else {
$dateValue = self::DATEVALUE($dateValue);
}
}
return $dateValue;
} // function _getDateValue()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::_getTimeValue (   $timeValue)
staticprivate

_getTimeValue

Parameters
string$timeValue
Returns
mixed Excel date/time serial value, or string if error

Definition at line 107 of file DateTime.php.

References PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\setReturnDateType(), and TIMEVALUE().

Referenced by HOUROFDAY(), MINUTEOFHOUR(), and SECONDOFMINUTE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::_isLeapYear (   $year)
static

Definition at line 48 of file DateTime.php.

Referenced by PHPExcel_Calculation_Financial\_daysPerYear(), PHPExcel_Calculation_Financial\AMORLINC(), and YEARFRAC().

{
return ((($year % 4) == 0) && (($year % 100) != 0) || (($year % 400) == 0));
} // function _isLeapYear()

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::DATE (   $year = 0,
  $month = 1,
  $day = 1 
)
static

DATE.

Parameters
long$year
long$month
long$day
Returns
mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, depending on the value of the ReturnDateType flag

Definition at line 206 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Shared_Date\FormattedPHPToExcel(), PHPExcel_Shared_Date\getExcelCalendar(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Calculation_Functions\NaN(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, and PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT.

{
// Validate parameters
if ($year < ($baseYear-1900)) {
}
if ((($baseYear-1900) != 0) && ($year < $baseYear) && ($year >= 1900)) {
}
if (($year < $baseYear) && ($year >= ($baseYear-1900))) {
$year += 1900;
}
if ($month < 1) {
// Handle year/month adjustment if month < 1
--$month;
$year += ceil($month / 12) - 1;
$month = 13 - abs($month % 12);
} elseif ($month > 12) {
// Handle year/month adjustment if month > 12
$year += floor($month / 12);
$month = ($month % 12);
}
// Re-validate the year parameter after adjustments
if (($year < $baseYear) || ($year >= 10000)) {
}
// Execute function
$excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel($year, $month, $day);
return (float) $excelDateValue;
break;
return (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateValue);
break;
return PHPExcel_Shared_Date::ExcelToPHPObject($excelDateValue);
break;
}
} // function DATE()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::DATEDIF (   $startDate = 0,
  $endDate = 0,
  $unit = 'D' 
)
static

DATEDIF.

Parameters
long$startDateExcel date serial value or a standard date string
long$endDateExcel date serial value or a standard date string
string$unit
Returns
long Interval between the dates

Definition at line 468 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

Referenced by PHPExcel_Calculation_Financial\XNPV(), and YEARFRAC().

{
if (is_string($startDate = self::_getDateValue($startDate))) {
}
if (is_string($endDate = self::_getDateValue($endDate))) {
}
// Validate parameters
if ($startDate >= $endDate) {
}
// Execute function
$difference = $endDate - $startDate;
$PHPStartDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($startDate);
$startDays = $PHPStartDateObject->format('j');
$startMonths = $PHPStartDateObject->format('n');
$startYears = $PHPStartDateObject->format('Y');
$PHPEndDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($endDate);
$endDays = $PHPEndDateObject->format('j');
$endMonths = $PHPEndDateObject->format('n');
$endYears = $PHPEndDateObject->format('Y');
switch ($unit) {
case 'D':
$retVal = intval($difference);
break;
case 'M':
$retVal = intval($endMonths - $startMonths) + (intval($endYears - $startYears) * 12);
// We're only interested in full months
if ($endDays < $startDays) {
--$retVal;
}
break;
case 'Y':
$retVal = intval($endYears - $startYears);
// We're only interested in full months
if ($endMonths < $startMonths) {
--$retVal;
} elseif (($endMonths == $startMonths) && ($endDays < $startDays)) {
--$retVal;
}
break;
case 'MD':
if ($endDays < $startDays) {
$retVal = $endDays;
$PHPEndDateObject->modify('-'.$endDays.' days');
$adjustDays = $PHPEndDateObject->format('j');
if ($adjustDays > $startDays) {
$retVal += ($adjustDays - $startDays);
}
} else {
$retVal = $endDays - $startDays;
}
break;
case 'YM':
$retVal = intval($endMonths - $startMonths);
if ($retVal < 0) $retVal = 12 + $retVal;
// We're only interested in full months
if ($endDays < $startDays) {
--$retVal;
}
break;
case 'YD':
$retVal = intval($difference);
if ($endYears > $startYears) {
while ($endYears > $startYears) {
$PHPEndDateObject->modify('-1 year');
$endYears = $PHPEndDateObject->format('Y');
}
$retVal = $PHPEndDateObject->format('z') - $PHPStartDateObject->format('z');
if ($retVal < 0) { $retVal += 365; }
}
break;
}
return $retVal;
} // function DATEDIF()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::DATENOW ( )
static

DATENOW.

Returns
mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, depending on the value of the ReturnDateType flag

Definition at line 175 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Shared_Date\PHPToExcel(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, and PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT.

{
$saveTimeZone = date_default_timezone_get();
date_default_timezone_set('UTC');
$retValue = False;
$excelDateTime = floor(PHPExcel_Shared_Date::PHPToExcel(time()));
$retValue = (float) $excelDateTime;
break;
$retValue = (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateTime) - 3600;
break;
$retValue = PHPExcel_Shared_Date::ExcelToPHPObject($excelDateTime);
break;
}
date_default_timezone_set($saveTimeZone);
return $retValue;
} // function DATENOW()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::DATETIMENOW ( )
static

DATETIMENOW.

Returns
mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, depending on the value of the ReturnDateType flag

Definition at line 148 of file DateTime.php.

References PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Shared_Date\PHPToExcel(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, and PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT.

{
$saveTimeZone = date_default_timezone_get();
date_default_timezone_set('UTC');
$retValue = False;
$retValue = (float) PHPExcel_Shared_Date::PHPToExcel(time());
break;
$retValue = (integer) time();
break;
$retValue = new DateTime();
break;
}
date_default_timezone_set($saveTimeZone);
return $retValue;
} // function DATETIMENOW()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::DATEVALUE (   $dateValue = 1)
static

DATEVALUE.

Parameters
string$dateValue
Returns
mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, depending on the value of the ReturnDateType flag

Definition at line 344 of file DateTime.php.

References $t, PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Shared_Date\FormattedPHPToExcel(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT, and PHPExcel_Calculation_Functions\VALUE().

Referenced by _getDateValue(), PHPExcel_Shared_Date\stringToExcel(), and PHPExcel_Calculation_TextData\TEXTFORMAT().

{
$dateValue = trim(PHPExcel_Calculation_Functions::flattenSingleValue($dateValue),'"');
// Strip any ordinals because they're allowed in Excel (English only)
$dateValue = preg_replace('/(\d)(st|nd|rd|th)([ -\/])/Ui','$1$3',$dateValue);
// Convert separators (/ . or space) to hyphens (should also handle dot used for ordinals in some countries, e.g. Denmark, Germany)
$dateValue = str_replace(array('/','.','-',' '),array(' ',' ',' ',' '),$dateValue);
$yearFound = false;
$t1 = explode(' ',$dateValue);
foreach($t1 as &$t) {
if ((is_numeric($t)) && ($t > 31)) {
if ($yearFound) {
} else {
if ($t < 100) { $t += 1900; }
$yearFound = true;
}
}
}
if ((count($t1) == 1) && (strpos($t,':') != false)) {
// We've been fed a time value without any date
return 0.0;
} elseif (count($t1) == 2) {
// We only have two parts of the date: either day/month or month/year
if ($yearFound) {
array_unshift($t1,1);
} else {
array_push($t1,date('Y'));
}
}
unset($t);
$dateValue = implode(' ',$t1);
$PHPDateArray = date_parse($dateValue);
if (($PHPDateArray === False) || ($PHPDateArray['error_count'] > 0)) {
$testVal1 = strtok($dateValue,'- ');
if ($testVal1 !== False) {
$testVal2 = strtok('- ');
if ($testVal2 !== False) {
$testVal3 = strtok('- ');
if ($testVal3 === False) {
$testVal3 = strftime('%Y');
}
} else {
}
} else {
}
$PHPDateArray = date_parse($testVal1.'-'.$testVal2.'-'.$testVal3);
if (($PHPDateArray === False) || ($PHPDateArray['error_count'] > 0)) {
$PHPDateArray = date_parse($testVal2.'-'.$testVal1.'-'.$testVal3);
if (($PHPDateArray === False) || ($PHPDateArray['error_count'] > 0)) {
}
}
}
if (($PHPDateArray !== False) && ($PHPDateArray['error_count'] == 0)) {
// Execute function
if ($PHPDateArray['year'] == '') { $PHPDateArray['year'] = strftime('%Y'); }
if ($PHPDateArray['month'] == '') { $PHPDateArray['month'] = strftime('%m'); }
if ($PHPDateArray['day'] == '') { $PHPDateArray['day'] = strftime('%d'); }
$excelDateValue = floor(PHPExcel_Shared_Date::FormattedPHPToExcel($PHPDateArray['year'],$PHPDateArray['month'],$PHPDateArray['day'],$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second']));
return (float) $excelDateValue;
break;
return (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateValue);
break;
return new DateTime($PHPDateArray['year'].'-'.$PHPDateArray['month'].'-'.$PHPDateArray['day'].' 00:00:00');
break;
}
}
} // function DATEVALUE()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::DAYOFMONTH (   $dateValue = 1)
static

DAYOFMONTH.

Parameters
long$dateValueExcel date serial value or a standard date string
Returns
int Day

Definition at line 854 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

Referenced by YEARFRAC().

{
if (is_string($dateValue = self::_getDateValue($dateValue))) {
} elseif ($dateValue == 0.0) {
return 0;
} elseif ($dateValue < 0.0) {
}
// Execute function
$PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue);
return (int) $PHPDateObject->format('j');
} // function DAYOFMONTH()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::DAYOFWEEK (   $dateValue = 1,
  $style = 1 
)
static

DAYOFWEEK.

Parameters
long$dateValueExcel date serial value or a standard date string
Returns
int Day

Definition at line 878 of file DateTime.php.

References PHPExcel_Calculation_Functions\COMPATIBILITY_EXCEL, PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\getCompatibilityMode(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

Referenced by NETWORKDAYS(), and WORKDAY().

{
if (is_string($dateValue = self::_getDateValue($dateValue))) {
} elseif ($dateValue < 0.0) {
}
// Execute function
$PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue);
$DoW = $PHPDateObject->format('w');
$firstDay = 1;
switch ($style) {
case 1: ++$DoW;
break;
case 2: if ($DoW == 0) { $DoW = 7; }
break;
case 3: if ($DoW == 0) { $DoW = 7; }
$firstDay = 0;
--$DoW;
break;
default:
}
// Test for Excel's 1900 leap year, and introduce the error as required
if (($PHPDateObject->format('Y') == 1900) && ($PHPDateObject->format('n') <= 2)) {
--$DoW;
if ($DoW < $firstDay) {
$DoW += 7;
}
}
}
return (int) $DoW;
} // function DAYOFWEEK()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::DAYS360 (   $startDate = 0,
  $endDate = 0,
  $method = false 
)
static

DAYS360.

Parameters
long$startDateExcel date serial value or a standard date string
long$endDateExcel date serial value or a standard date string
boolean$methodUS or European Method
Returns
long PHP date/time serial

Definition at line 563 of file DateTime.php.

References _dateDiff360(), PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), and PHPExcel_Calculation_Functions\VALUE().

Referenced by YEARFRAC().

{
if (is_string($startDate = self::_getDateValue($startDate))) {
}
if (is_string($endDate = self::_getDateValue($endDate))) {
}
// Execute function
$PHPStartDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($startDate);
$startDay = $PHPStartDateObject->format('j');
$startMonth = $PHPStartDateObject->format('n');
$startYear = $PHPStartDateObject->format('Y');
$PHPEndDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($endDate);
$endDay = $PHPEndDateObject->format('j');
$endMonth = $PHPEndDateObject->format('n');
$endYear = $PHPEndDateObject->format('Y');
return self::_dateDiff360($startDay, $startMonth, $startYear, $endDay, $endMonth, $endYear, !$method);
} // function DAYS360()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::EDATE (   $dateValue = 1,
  $adjustmentMonths = 0 
)
static

EDATE.

Returns the serial number that represents the date that is the indicated number of months before or after a specified date (the start_date). Use EDATE to calculate maturity dates or due dates that fall on the same day of the month as the date of issue.

Parameters
long$dateValueExcel date serial value or a standard date string
int$adjustmentMonthsNumber of months to adjust by
Returns
long Excel date serial value

Definition at line 1108 of file DateTime.php.

References _adjustDateByMonths(), PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Shared_Date\PHPToExcel(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT, and PHPExcel_Calculation_Functions\VALUE().

{
$adjustmentMonths = floor(PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths));
if (!is_numeric($adjustmentMonths)) {
}
if (is_string($dateValue = self::_getDateValue($dateValue))) {
}
// Execute function
$PHPDateObject = self::_adjustDateByMonths($dateValue,$adjustmentMonths);
return (float) PHPExcel_Shared_Date::PHPToExcel($PHPDateObject);
break;
break;
return $PHPDateObject;
break;
}
} // function EDATE()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::EOMONTH (   $dateValue = 1,
  $adjustmentMonths = 0 
)
static

EOMONTH.

Returns the serial number for the last day of the month that is the indicated number of months before or after start_date. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month.

Parameters
long$dateValueExcel date serial value or a standard date string
int$adjustmentMonthsNumber of months to adjust by
Returns
long Excel date serial value

Definition at line 1147 of file DateTime.php.

References _adjustDateByMonths(), PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Shared_Date\PHPToExcel(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT, and PHPExcel_Calculation_Functions\VALUE().

{
$adjustmentMonths = floor(PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths));
if (!is_numeric($adjustmentMonths)) {
}
if (is_string($dateValue = self::_getDateValue($dateValue))) {
}
// Execute function
$PHPDateObject = self::_adjustDateByMonths($dateValue,$adjustmentMonths+1);
$adjustDays = (int) $PHPDateObject->format('d');
$adjustDaysString = '-'.$adjustDays.' days';
$PHPDateObject->modify($adjustDaysString);
return (float) PHPExcel_Shared_Date::PHPToExcel($PHPDateObject);
break;
break;
return $PHPDateObject;
break;
}
} // function EOMONTH()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::HOUROFDAY (   $timeValue = 0)
static

HOUROFDAY.

Parameters
mixed$timeValueExcel time serial value or a standard time string
Returns
int Hour

Definition at line 1005 of file DateTime.php.

References _getTimeValue(), PHPExcel_Calculation_Functions\COMPATIBILITY_GNUMERIC, PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\getCompatibilityMode(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

{
if (!is_numeric($timeValue)) {
$testVal = strtok($timeValue,'/-: ');
if (strlen($testVal) < strlen($timeValue)) {
}
}
$timeValue = self::_getTimeValue($timeValue);
if (is_string($timeValue)) {
}
}
// Execute function
if ($timeValue >= 1) {
$timeValue = fmod($timeValue,1);
} elseif ($timeValue < 0.0) {
}
$timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue);
return (int) gmdate('G',$timeValue);
} // function HOUROFDAY()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::MINUTEOFHOUR (   $timeValue = 0)
static

MINUTEOFHOUR.

Parameters
long$timeValueExcel time serial value or a standard time string
Returns
int Minute

Definition at line 1038 of file DateTime.php.

References _getTimeValue(), PHPExcel_Calculation_Functions\COMPATIBILITY_GNUMERIC, PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\getCompatibilityMode(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

{
$timeValue = $timeTester = PHPExcel_Calculation_Functions::flattenSingleValue($timeValue);
if (!is_numeric($timeValue)) {
$testVal = strtok($timeValue,'/-: ');
if (strlen($testVal) < strlen($timeValue)) {
}
}
$timeValue = self::_getTimeValue($timeValue);
if (is_string($timeValue)) {
}
}
// Execute function
if ($timeValue >= 1) {
$timeValue = fmod($timeValue,1);
} elseif ($timeValue < 0.0) {
}
$timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue);
return (int) gmdate('i',$timeValue);
} // function MINUTEOFHOUR()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::MONTHOFYEAR (   $dateValue = 1)
static

MONTHOFYEAR.

Parameters
long$dateValueExcel date serial value or a standard date string
Returns
int Month

Definition at line 961 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

Referenced by YEARFRAC().

{
if (is_string($dateValue = self::_getDateValue($dateValue))) {
} elseif ($dateValue < 0.0) {
}
// Execute function
$PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue);
return (int) $PHPDateObject->format('n');
} // function MONTHOFYEAR()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::NETWORKDAYS (   $startDate,
  $endDate 
)
static

NETWORKDAYS.

Parameters
mixedStart date
mixedEnd date
arrayof mixed Optional Date Series
Returns
long Interval between the dates

Definition at line 691 of file DateTime.php.

References DAYOFWEEK(), PHPExcel_Calculation_Functions\flattenArray(), PHPExcel_Calculation_Functions\flattenSingleValue(), and PHPExcel_Calculation_Functions\VALUE().

{
// Retrieve the mandatory start and end date that are referenced in the function definition
// Flush the mandatory start and end date that are referenced in the function definition, and get the optional days
$dateArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args());
array_shift($dateArgs);
array_shift($dateArgs);
// Validate the start and end dates
if (is_string($startDate = $sDate = self::_getDateValue($startDate))) {
}
$startDate = (float) floor($startDate);
if (is_string($endDate = $eDate = self::_getDateValue($endDate))) {
}
$endDate = (float) floor($endDate);
if ($sDate > $eDate) {
$startDate = $eDate;
$endDate = $sDate;
}
// Execute function
$startDoW = 6 - self::DAYOFWEEK($startDate,2);
if ($startDoW < 0) { $startDoW = 0; }
$endDoW = self::DAYOFWEEK($endDate,2);
if ($endDoW >= 6) { $endDoW = 0; }
$wholeWeekDays = floor(($endDate - $startDate) / 7) * 5;
$partWeekDays = $endDoW + $startDoW;
if ($partWeekDays > 5) {
$partWeekDays -= 5;
}
// Test any extra holiday parameters
$holidayCountedArray = array();
foreach ($dateArgs as $holidayDate) {
if (is_string($holidayDate = self::_getDateValue($holidayDate))) {
}
if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) {
if ((self::DAYOFWEEK($holidayDate,2) < 6) && (!in_array($holidayDate,$holidayCountedArray))) {
--$partWeekDays;
$holidayCountedArray[] = $holidayDate;
}
}
}
if ($sDate > $eDate) {
return 0 - ($wholeWeekDays + $partWeekDays);
}
return $wholeWeekDays + $partWeekDays;
} // function NETWORKDAYS()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::SECONDOFMINUTE (   $timeValue = 0)
static

SECONDOFMINUTE.

Parameters
long$timeValueExcel time serial value or a standard time string
Returns
int Second

Definition at line 1071 of file DateTime.php.

References _getTimeValue(), PHPExcel_Calculation_Functions\COMPATIBILITY_GNUMERIC, PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\getCompatibilityMode(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

{
if (!is_numeric($timeValue)) {
$testVal = strtok($timeValue,'/-: ');
if (strlen($testVal) < strlen($timeValue)) {
}
}
$timeValue = self::_getTimeValue($timeValue);
if (is_string($timeValue)) {
}
}
// Execute function
if ($timeValue >= 1) {
$timeValue = fmod($timeValue,1);
} elseif ($timeValue < 0.0) {
}
$timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue);
return (int) gmdate('s',$timeValue);
} // function SECONDOFMINUTE()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::TIME (   $hour = 0,
  $minute = 0,
  $second = 0 
)
static

TIME.

Parameters
long$hour
long$minute
long$second
Returns
mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, depending on the value of the ReturnDateType flag

Definition at line 265 of file DateTime.php.

References PHPExcel_Shared_Date\CALENDAR_WINDOWS_1900, PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Shared_Date\FormattedPHPToExcel(), PHPExcel_Shared_Date\getExcelCalendar(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Calculation_Functions\NaN(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT, and PHPExcel_Calculation_Functions\VALUE().

{
if ($hour == '') { $hour = 0; }
if ($minute == '') { $minute = 0; }
if ($second == '') { $second = 0; }
if ((!is_numeric($hour)) || (!is_numeric($minute)) || (!is_numeric($second))) {
}
$hour = (integer) $hour;
$minute = (integer) $minute;
$second = (integer) $second;
if ($second < 0) {
$minute += floor($second / 60);
$second = 60 - abs($second % 60);
if ($second == 60) { $second = 0; }
} elseif ($second >= 60) {
$minute += floor($second / 60);
$second = $second % 60;
}
if ($minute < 0) {
$hour += floor($minute / 60);
$minute = 60 - abs($minute % 60);
if ($minute == 60) { $minute = 0; }
} elseif ($minute >= 60) {
$hour += floor($minute / 60);
$minute = $minute % 60;
}
if ($hour > 23) {
$hour = $hour % 24;
} elseif ($hour < 0) {
}
// Execute function
$date = 0;
$date = 1;
}
return (float) PHPExcel_Shared_Date::FormattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second);
break;
return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::FormattedPHPToExcel(1970, 1, 1, $hour-1, $minute, $second)); // -2147468400; // -2147472000 + 3600
break;
$dayAdjust = 0;
if ($hour < 0) {
$dayAdjust = floor($hour / 24);
$hour = 24 - abs($hour % 24);
if ($hour == 24) { $hour = 0; }
} elseif ($hour >= 24) {
$dayAdjust = floor($hour / 24);
$hour = $hour % 24;
}
$phpDateObject = new DateTime('1900-01-01 '.$hour.':'.$minute.':'.$second);
if ($dayAdjust != 0) {
$phpDateObject->modify($dayAdjust.' days');
}
return $phpDateObject;
break;
}
} // function TIME()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::TIMEVALUE (   $timeValue)
static

TIMEVALUE.

Parameters
string$timeValue
Returns
mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, depending on the value of the ReturnDateType flag

Definition at line 432 of file DateTime.php.

References PHPExcel_Calculation_Functions\COMPATIBILITY_OPENOFFICE, PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Shared_Date\FormattedPHPToExcel(), PHPExcel_Calculation_Functions\getCompatibilityMode(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT, and PHPExcel_Calculation_Functions\VALUE().

Referenced by _getTimeValue(), and PHPExcel_Shared_Date\stringToExcel().

{
$timeValue = trim(PHPExcel_Calculation_Functions::flattenSingleValue($timeValue),'"');
$timeValue = str_replace(array('/','.'),array('-','-'),$timeValue);
$PHPDateArray = date_parse($timeValue);
if (($PHPDateArray !== False) && ($PHPDateArray['error_count'] == 0)) {
$excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel($PHPDateArray['year'],$PHPDateArray['month'],$PHPDateArray['day'],$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second']);
} else {
$excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel(1900,1,1,$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second']) - 1;
}
return (float) $excelDateValue;
break;
return (integer) $phpDateValue = PHPExcel_Shared_Date::ExcelToPHP($excelDateValue+25569) - 3600;;
break;
return new DateTime('1900-01-01 '.$PHPDateArray['hour'].':'.$PHPDateArray['minute'].':'.$PHPDateArray['second']);
break;
}
}
} // function TIMEVALUE()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::WEEKOFYEAR (   $dateValue = 1,
  $method = 1 
)
static

WEEKOFYEAR.

Parameters
long$dateValueExcel date serial value or a standard date string
boolean$methodWeek begins on Sunday or Monday
Returns
int Week Number

Definition at line 925 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

{
if (!is_numeric($method)) {
} elseif (($method < 1) || ($method > 2)) {
}
if (is_string($dateValue = self::_getDateValue($dateValue))) {
} elseif ($dateValue < 0.0) {
}
// Execute function
$PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue);
$dayOfYear = $PHPDateObject->format('z');
$dow = $PHPDateObject->format('w');
$PHPDateObject->modify('-'.$dayOfYear.' days');
$dow = $PHPDateObject->format('w');
$daysInFirstWeek = 7 - (($dow + (2 - $method)) % 7);
$dayOfYear -= $daysInFirstWeek;
$weekOfYear = ceil($dayOfYear / 7) + 1;
return (int) $weekOfYear;
} // function WEEKOFYEAR()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::WORKDAY (   $startDate,
  $endDays 
)
static

WORKDAY.

Parameters
mixedStart date
mixednumber of days for adjustment
arrayof mixed Optional Date Series
Returns
long Interval between the dates

Definition at line 756 of file DateTime.php.

References DAYOFWEEK(), PHPExcel_Shared_Date\ExcelToPHP(), PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenArray(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\getReturnDateType(), PHPExcel_Calculation_Functions\RETURNDATE_EXCEL, PHPExcel_Calculation_Functions\RETURNDATE_PHP_NUMERIC, PHPExcel_Calculation_Functions\RETURNDATE_PHP_OBJECT, and PHPExcel_Calculation_Functions\VALUE().

{
// Retrieve the mandatory start date and days that are referenced in the function definition
// Flush the mandatory start date and days that are referenced in the function definition, and get the optional days
$dateArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args());
array_shift($dateArgs);
array_shift($dateArgs);
if ((is_string($startDate = self::_getDateValue($startDate))) || (!is_numeric($endDays))) {
}
$startDate = (float) floor($startDate);
// If endDays is 0, we always return startDate
if ($endDays == 0) { return $startDate; }
$decrementing = ($endDays < 0) ? True : False;
// Adjust the start date if it falls over a weekend
$startDoW = self::DAYOFWEEK($startDate,3);
if (self::DAYOFWEEK($startDate,3) >= 5) {
$startDate += ($decrementing) ? -$startDoW + 4: 7 - $startDoW;
($decrementing) ? $endDays++ : $endDays--;
}
// Add endDays
$endDate = (float) $startDate + (intval($endDays / 5) * 7) + ($endDays % 5);
// Adjust the calculated end date if it falls over a weekend
$endDoW = self::DAYOFWEEK($endDate,3);
if ($endDoW >= 5) {
$endDate += ($decrementing) ? -$endDoW + 4: 7 - $endDoW;
}
// Test any extra holiday parameters
if (count($dateArgs) > 0) {
$holidayCountedArray = $holidayDates = array();
foreach ($dateArgs as $holidayDate) {
if ((!is_null($holidayDate)) && (trim($holidayDate) > '')) {
if (is_string($holidayDate = self::_getDateValue($holidayDate))) {
}
if (self::DAYOFWEEK($holidayDate,3) < 5) {
$holidayDates[] = $holidayDate;
}
}
}
if ($decrementing) {
rsort($holidayDates, SORT_NUMERIC);
} else {
sort($holidayDates, SORT_NUMERIC);
}
foreach ($holidayDates as $holidayDate) {
if ($decrementing) {
if (($holidayDate <= $startDate) && ($holidayDate >= $endDate)) {
if (!in_array($holidayDate,$holidayCountedArray)) {
--$endDate;
$holidayCountedArray[] = $holidayDate;
}
}
} else {
if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) {
if (!in_array($holidayDate,$holidayCountedArray)) {
++$endDate;
$holidayCountedArray[] = $holidayDate;
}
}
}
// Adjust the calculated end date if it falls over a weekend
$endDoW = self::DAYOFWEEK($endDate,3);
if ($endDoW >= 5) {
$endDate += ($decrementing) ? -$endDoW + 4: 7 - $endDoW;
}
}
}
return (float) $endDate;
break;
return (integer) PHPExcel_Shared_Date::ExcelToPHP($endDate);
break;
break;
}
} // function WORKDAY()

+ Here is the call graph for this function:

static PHPExcel_Calculation_DateTime::YEAR (   $dateValue = 1)
static

YEAR.

Parameters
long$dateValueExcel date serial value or a standard date string
Returns
int Year

Definition at line 983 of file DateTime.php.

References PHPExcel_Shared_Date\ExcelToPHPObject(), PHPExcel_Calculation_Functions\flattenSingleValue(), PHPExcel_Calculation_Functions\NaN(), and PHPExcel_Calculation_Functions\VALUE().

Referenced by PHPExcel_Calculation_Financial\AMORLINC(), PHPExcel_Calculation_Financial\COUPDAYBS(), PHPExcel_Calculation_Financial\COUPDAYS(), PHPExcel_Calculation_Financial\COUPDAYSNC(), PHPExcel_Calculation_Financial\PRICEMAT(), YEARFRAC(), PHPExcel_Calculation_Financial\YIELDDISC(), and PHPExcel_Calculation_Financial\YIELDMAT().

{
if (is_string($dateValue = self::_getDateValue($dateValue))) {
} elseif ($dateValue < 0.0) {
}
// Execute function
$PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue);
return (int) $PHPDateObject->format('Y');
} // function YEAR()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static PHPExcel_Calculation_DateTime::YEARFRAC (   $startDate = 0,
  $endDate = 0,
  $method = 0 
)
static

YEARFRAC.

Calculates the fraction of the year represented by the number of whole days between two dates (the start_date and the end_date). Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or obligations to assign to a specific term.

Parameters
mixed$startDateExcel date serial value (float), PHP date timestamp (integer) or date object, or a standard date string
mixed$endDateExcel date serial value (float), PHP date timestamp (integer) or date object, or a standard date string
integer$methodMethod used for the calculation 0 or omitted US (NASD) 30/360 1 Actual/actual 2 Actual/360 3 Actual/365 4 European 30/360
Returns
float fraction of the year

Definition at line 606 of file DateTime.php.

References _isLeapYear(), DATEDIF(), DAYOFMONTH(), DAYS360(), PHPExcel_Calculation_Functions\flattenSingleValue(), MONTHOFYEAR(), PHPExcel_Calculation_Functions\VALUE(), and YEAR().

Referenced by PHPExcel_Calculation_Financial\ACCRINT(), PHPExcel_Calculation_Financial\ACCRINTM(), PHPExcel_Calculation_Financial\AMORDEGRC(), PHPExcel_Calculation_Financial\AMORLINC(), PHPExcel_Calculation_Financial\COUPDAYBS(), PHPExcel_Calculation_Financial\COUPDAYSNC(), PHPExcel_Calculation_Financial\COUPNUM(), PHPExcel_Calculation_Financial\DISC(), PHPExcel_Calculation_Financial\INTRATE(), PHPExcel_Calculation_Financial\PRICEDISC(), PHPExcel_Calculation_Financial\PRICEMAT(), PHPExcel_Calculation_Financial\RECEIVED(), PHPExcel_Calculation_Financial\TBILLEQ(), PHPExcel_Calculation_Financial\TBILLPRICE(), PHPExcel_Calculation_Financial\TBILLYIELD(), PHPExcel_Calculation_Financial\YIELDDISC(), and PHPExcel_Calculation_Financial\YIELDMAT().

{
if (is_string($startDate = self::_getDateValue($startDate))) {
}
if (is_string($endDate = self::_getDateValue($endDate))) {
}
if (((is_numeric($method)) && (!is_string($method))) || ($method == '')) {
switch($method) {
case 0 :
return self::DAYS360($startDate,$endDate) / 360;
break;
case 1 :
$days = self::DATEDIF($startDate,$endDate);
$startYear = self::YEAR($startDate);
$endYear = self::YEAR($endDate);
$years = $endYear - $startYear + 1;
$leapDays = 0;
if ($years == 1) {
if (self::_isLeapYear($endYear)) {
$startMonth = self::MONTHOFYEAR($startDate);
$endMonth = self::MONTHOFYEAR($endDate);
$endDay = self::DAYOFMONTH($endDate);
if (($startMonth < 3) ||
(($endMonth * 100 + $endDay) >= (2 * 100 + 29))) {
$leapDays += 1;
}
}
} else {
for($year = $startYear; $year <= $endYear; ++$year) {
if ($year == $startYear) {
$startMonth = self::MONTHOFYEAR($startDate);
$startDay = self::DAYOFMONTH($startDate);
if ($startMonth < 3) {
$leapDays += (self::_isLeapYear($year)) ? 1 : 0;
}
} elseif($year == $endYear) {
$endMonth = self::MONTHOFYEAR($endDate);
$endDay = self::DAYOFMONTH($endDate);
if (($endMonth * 100 + $endDay) >= (2 * 100 + 29)) {
$leapDays += (self::_isLeapYear($year)) ? 1 : 0;
}
} else {
$leapDays += (self::_isLeapYear($year)) ? 1 : 0;
}
}
if ($years == 2) {
if (($leapDays == 0) && (self::_isLeapYear($startYear)) && ($days > 365)) {
$leapDays = 1;
} elseif ($days < 366) {
$years = 1;
}
}
$leapDays /= $years;
}
return $days / (365 + $leapDays);
break;
case 2 :
return self::DATEDIF($startDate,$endDate) / 360;
break;
case 3 :
return self::DATEDIF($startDate,$endDate) / 365;
break;
case 4 :
return self::DAYS360($startDate,$endDate,True) / 360;
break;
}
}
} // function YEARFRAC()

+ Here is the call graph for this function:

+ Here is the caller graph for this function:


The documentation for this class was generated from the following file: