<?php
class Employee{
public $name;
public $rate;
public $overtime = array(); public $normaltime = array(); public function __construct($name,$rate) {
$this->name = $name;
$this->rate = $rate;
}
public function getTotalHoursWorked(){
}
public function getSalary(){
$hours = $this->getTotalHoursWorked();
$salary= $hours*$this->rate;
return $salary;
}
public function getShortName(){
while($this->name{$i}!=" "){
$i--;
if ($i<0) break;
}
$shortname = mb_substr($this->name, 0,$i-2 ); return $this->name= $shortname.".";
}
public function getNormalHours() {
}
public function getOvertimeHours(){ //подсчет часов сверх нормы
foreach ($this->hours as $key => $value) {
if ($value >40){
$this->overtime[$key]= $value -40; }
else {$this->overtime[$key]= 0 ;}
}
return $this->overtime;
}
}
function padRight($string, $length){
}
function padLeft($string, $length){
return $string;
}
$ivan = new Employee("Иван Иванов", 10);
$ivan ->hours = array(40,40,40,40); $peter = new Employee("Петр Петров", 8);
$ivan-> getShortName();
$peter-> getShortName();
$peter ->hours = array(40,10,40,50); $peter ->getOvertimeHours();
$employees = array($ivan,$peter);
$col1 = 30;
$col2 = 8;
echo"<pre>";
echo padRight("Сотрудник", $col1).
padLeft("Часы", $col2).
padLeft("Ставка", $col2).
padLeft("З/п", $col2). " <br>";
foreach ($employees as $employee) {
echo padRight($employee->name, $col1) .
padLeft($employee->getTotalHoursWorked(), $col2) .
padLeft($employee->rate, $col2) .
padLeft($employee->getSalary(), $col2) . "<br>";
}
var_dump($ivan->getOvertimeHours()); //подсчет часов сверх нормы ?>
CiAgICAgICAgPD9waHAKICAgIGNsYXNzIEVtcGxveWVlewogICAgICAgIHB1YmxpYyAkbmFtZTsKICAgICAgICBwdWJsaWMgJHJhdGU7CiAgICAgICAgcHVibGljICRob3VycyA9IGFycmF5KCk7CiAgICAgICAgcHVibGljICRvdmVydGltZSA9IGFycmF5KCk7CiAgICAgICAgcHVibGljICRub3JtYWx0aW1lID0gYXJyYXkoKTsKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsJHJhdGUpIHsKICAgICAgICAgICAgJHRoaXMtPm5hbWUgPSAkbmFtZTsKICAgICAgICAgICAgJHRoaXMtPnJhdGUgPSAkcmF0ZTsKICAgICAgICB9CiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGdldFRvdGFsSG91cnNXb3JrZWQoKXsKICAgICAgICAgICAgcmV0dXJuIGFycmF5X3N1bSgkdGhpcy0+aG91cnMpOyAKICAgICAgICB9CiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGdldFNhbGFyeSgpewogICAgICAgICAgICAkaG91cnMgPSAkdGhpcy0+Z2V0VG90YWxIb3Vyc1dvcmtlZCgpOwogICAgICAgICAgICAkc2FsYXJ5PSAkaG91cnMqJHRoaXMtPnJhdGU7CiAgICAgICAgICAgIHJldHVybiAkc2FsYXJ5OwogICAgICAgIH0KICAgICAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2hvcnROYW1lKCl7CiAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAkaT0gbWJfc3RybGVuKCR0aGlzLT5uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSgkdGhpcy0+bmFtZXskaX0hPSIgIil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpPDApIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgJHNob3J0bmFtZSA9IG1iX3N1YnN0cigkdGhpcy0+bmFtZSwgMCwkaS0yICk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bmFtZT0gJHNob3J0bmFtZS4iLiI7CiAgICAgICAgIH0KICAgICAgIAogICAgcHVibGljIGZ1bmN0aW9uIGdldE5vcm1hbEhvdXJzKCkgewogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgfQogICAgcHVibGljIGZ1bmN0aW9uICBnZXRPdmVydGltZUhvdXJzKCl7ICAgICAgICAgICAvL9C/0L7QtNGB0YfQtdGCINGH0LDRgdC+0LIg0YHQstC10YDRhSDQvdC+0YDQvNGLCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmhvdXJzIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICBpZiAoJHZhbHVlID40MCl7CiAgICAgICAgICAgICAgICAKICAgICAgICR0aGlzLT5vdmVydGltZVska2V5XT0gJHZhbHVlIC00MDsgICB9ICAKICAgICAgICBlbHNlIHskdGhpcy0+b3ZlcnRpbWVbJGtleV09IDAgO30KICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPm92ZXJ0aW1lOwogICAgfQogICAgCiAgfQogICAgICAgICAgCiAgICAgICAKICAgICAgIAogICAgICBmdW5jdGlvbiBwYWRSaWdodCgkc3RyaW5nLCAkbGVuZ3RoKXsKICAgICAgICAgICAgcmV0dXJuICRzdHJpbmcuPSBzdHJfcmVwZWF0KCIgIiwgJGxlbmd0aC1tYl9zdHJsZW4oJHN0cmluZykpOwogICAgICAgICAgICAgCiAgICAgIH0KICAgICAgICAgICAgIGZ1bmN0aW9uIHBhZExlZnQoJHN0cmluZywgJGxlbmd0aCl7CiRzdHJpbmcgPSBzdHJfcmVwZWF0KCIgIiwgJGxlbmd0aC1tYl9zdHJsZW4oJHN0cmluZykpIC4kc3RyaW5nOwogICAgICAgICAgICAgIHJldHVybiAkc3RyaW5nOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAkaXZhbiA9IG5ldyBFbXBsb3llZSgi0JjQstCw0L0g0JjQstCw0L3QvtCyIiwgMTApOwogICAgICAgICRpdmFuIC0+aG91cnMgPSBhcnJheSg0MCw0MCw0MCw0MCk7CiAgICAgICAgJHBldGVyID0gbmV3IEVtcGxveWVlKCLQn9C10YLRgCDQn9C10YLRgNC+0LIiLCA4KTsKICAgICAgICAgICAkaXZhbi0+IGdldFNob3J0TmFtZSgpOwogICAgICAgICAgJHBldGVyLT4gZ2V0U2hvcnROYW1lKCk7CiAgICAgICAgJHBldGVyIC0+aG91cnMgPSBhcnJheSg0MCwxMCw0MCw1MCk7CiAgICAgICAgJHBldGVyIC0+Z2V0T3ZlcnRpbWVIb3VycygpOwogICAgICAgICRlbXBsb3llZXMgPSBhcnJheSgkaXZhbiwkcGV0ZXIpOwogICAgIAogICAKICAgIAokY29sMSA9IDMwOwokY29sMiA9IDg7CmVjaG8iPHByZT4iOwogIGVjaG8gICBwYWRSaWdodCgi0KHQvtGC0YDRg9C00L3QuNC6IiwgJGNvbDEpLgogICAgICAgICAgICBwYWRMZWZ0KCLQp9Cw0YHRiyIsICRjb2wyKS4KICAgICAgICAgICAgcGFkTGVmdCgi0KHRgtCw0LLQutCwIiwgJGNvbDIpLgogICAgICAgICAgICBwYWRMZWZ0KCLQly/QvyIsICRjb2wyKS4gIiA8YnI+IjsKICAKICBmb3JlYWNoICgkZW1wbG95ZWVzIGFzICRlbXBsb3llZSkgewogICAgZWNobyBwYWRSaWdodCgkZW1wbG95ZWUtPm5hbWUsICRjb2wxKSAuCiAgICAgICAgIHBhZExlZnQoJGVtcGxveWVlLT5nZXRUb3RhbEhvdXJzV29ya2VkKCksICRjb2wyKSAuIAogICAgICAgICBwYWRMZWZ0KCRlbXBsb3llZS0+cmF0ZSwgJGNvbDIpIC4gCiAgICAgICAgIHBhZExlZnQoJGVtcGxveWVlLT5nZXRTYWxhcnkoKSwgJGNvbDIpIC4gIjxicj4iOwogICAKICAgCn0KdmFyX2R1bXAoJGl2YW4tPmdldE92ZXJ0aW1lSG91cnMoKSk7IC8v0L/QvtC00YHRh9C10YIg0YfQsNGB0L7QsiDRgdCy0LXRgNGFINC90L7RgNC80YsKICAgICAgICA/PgoK