You are here

private function PersianDate::persianWords in Persian Date for Drupal 8 8

Same name and namespace in other branches
  1. 8.4 src/Converter/PersianDate.php \Drupal\persian_date\Converter\PersianDate::persianWords()
1 call to PersianDate::persianWords()
PersianDate::format in src/Converter/PersianDate.php
@inheritDoc

File

src/Converter/PersianDate.php, line 252

Class

PersianDate
This class hold time and represents it in Persian Date format.

Namespace

Drupal\persian_date\Converter

Code

private function persianWords($array, $mod = '') {
  foreach ($array as $type => $num) {
    $num = (int) $num;
    switch ($type) {
      case 'ss':
        $sl = strlen($num);
        $xy3 = substr($num, 2 - $sl, 1);
        $h3 = $h34 = $h4 = '';
        if ($xy3 == 1) {
          $p34 = '';
          $k34 = array(
            'ده',
            'یازده',
            'دوازده',
            'سیزده',
            'چهارده',
            'پانزده',
            'شانزده',
            'هفده',
            'هجده',
            'نوزده',
          );
          $h34 = $k34[substr($num, 2 - $sl, 2) - 10];
        }
        else {
          $xy4 = substr($num, 3 - $sl, 1);
          $p34 = ($xy3 == 0 or $xy4 == 0) ? '' : ' و ';
          $k3 = array(
            '',
            '',
            'بیست',
            'سی',
            'چهل',
            'پنجاه',
            'شصت',
            'هفتاد',
            'هشتاد',
            'نود',
          );
          $h3 = $k3[$xy3];
          $k4 = array(
            '',
            'یک',
            'دو',
            'سه',
            'چهار',
            'پنج',
            'شش',
            'هفت',
            'هشت',
            'نه',
          );
          $h4 = $k4[$xy4];
        }
        $array[$type] = ($num > 99 ? str_ireplace(array(
          '12',
          '13',
          '14',
          '19',
          '20',
        ), array(
          'هزار و دویست',
          'هزار و سیصد',
          'هزار و چهارصد',
          'هزار و نهصد',
          'دوهزار',
        ), substr($num, 0, 2)) . (substr($num, 2, 2) == '00' ? '' : ' و ') : '') . $h3 . $p34 . $h34 . $h4;
        break;
      case 'mm':
        $key = array(
          'فروردین',
          'اردیبهشت',
          'خرداد',
          'تیر',
          'مرداد',
          'شهریور',
          'مهر',
          'آبان',
          'آذر',
          'دی',
          'بهمن',
          'اسفند',
        );
        $array[$type] = $key[$num - 1];
        break;
      case 'rr':
        $key = array(
          'یک',
          'دو',
          'سه',
          'چهار',
          'پنج',
          'شش',
          'هفت',
          'هشت',
          'نه',
          'ده',
          'یازده',
          'دوازده',
          'سیزده',
          'چهارده',
          'پانزده',
          'شانزده',
          'هفده',
          'هجده',
          'نوزده',
          'بیست',
          'بیست و یک',
          'بیست و دو',
          'بیست و سه',
          'بیست و چهار',
          'بیست و پنج',
          'بیست و شش',
          'بیست و هفت',
          'بیست و هشت',
          'بیست و نه',
          'سی',
          'سی و یک',
        );
        $array[$type] = $key[$num - 1];
        break;
      case 'rh':
        $key = array(
          'یکشنبه',
          'دوشنبه',
          'سه شنبه',
          'چهارشنبه',
          'پنجشنبه',
          'جمعه',
          'شنبه',
        );
        $array[$type] = $key[$num];
        break;
      case 'sh':
        $key = array(
          'مار',
          'اسب',
          'گوسفند',
          'میمون',
          'مرغ',
          'سگ',
          'خوک',
          'موش',
          'گاو',
          'پلنگ',
          'خرگوش',
          'نهنگ',
        );
        $array[$type] = $key[$num % 12];
        break;
      case 'mb':
        $key = array(
          'حمل',
          'ثور',
          'جوزا',
          'سرطان',
          'اسد',
          'سنبله',
          'میزان',
          'عقرب',
          'قوس',
          'جدی',
          'دلو',
          'حوت',
        );
        $array[$type] = $key[$num - 1];
        break;
      case 'ff':
        $key = array(
          'بهار',
          'تابستان',
          'پاییز',
          'زمستان',
        );
        $array[$type] = $key[(int) ($num / 3.1)];
        break;
      case 'km':
        $key = array(
          'فر',
          'ار',
          'خر',
          'تی‍',
          'مر',
          'شه‍',
          'مه‍',
          'آب‍',
          'آذ',
          'دی',
          'به‍',
          'اس‍',
        );
        $array[$type] = $key[$num - 1];
        break;
      case 'kh':
        $key = array(
          'ی',
          'د',
          'س',
          'چ',
          'پ',
          'ج',
          'ش',
        );
        $array[$type] = $key[$num];
        break;
      default:
        $array[$type] = $num;
    }
  }
  return $mod == '' ? $array : implode($mod, $array);
}