| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <?php
- /**
- * Zodiac Signs
- */
- class ZodiacLib {
- public $error = null;
- public static $res = [
- self::SIGN_AQUARIUS => 'aquarius',
- self::SIGN_ARIES => 'aries',
- self::SIGN_CANCER => 'cancer',
- self::SIGN_CAPRICORN => 'capricorn',
- self::SIGN_GEMINI => 'gemini',
- self::SIGN_LEO => 'leo',
- self::SIGN_LIBRA => 'libra',
- self::SIGN_PISCES => 'pisces',
- self::SIGN_SAGITTARIUS => 'sagittarius',
- self::SIGN_SCORPIO => 'scorpio',
- self::SIGN_TAURUS => 'taurus',
- self::SIGN_VIRGO => 'virgo',
- ];
- public function error() {
- return $this->error;
- }
- /**
- * @param int $sign
- * @return array(array(m, d), array(m, d)) (first is min, second is max)
- */
- public function getRange($sign) {
- $range = null;
- switch ($sign) {
- case static::SIGN_AQUARIUS:
- $range = [[1, 21], [2, 19]];
- break;
- case static::SIGN_PISCES:
- $range = [[2, 20], [3, 20]];
- break;
- case static::SIGN_ARIES:
- $range = [[3, 21], [4, 20]];
- break;
- case static::SIGN_TAURUS:
- $range = [[4, 21], [5, 21]];
- break;
- case static::SIGN_GEMINI:
- $range = [[5, 22], [6, 21]];
- break;
- case static::SIGN_CANCER:
- $range = [[6, 22], [7, 23]];
- break;
- case static::SIGN_LEO:
- $range = [[7, 24], [8, 23]];
- break;
- case static::SIGN_VIRGO:
- $range = [[8, 24], [9, 23]];
- break;
- case static::SIGN_LIBRA:
- $range = [[9, 24], [10, 23]];
- break;
- case static::SIGN_SCORPIO:
- $range = [[10, 24], [11, 22]];
- break;
- case static::SIGN_SAGITTARIUS:
- $range = [[11, 23], [12, 21]];
- break;
- case static::SIGN_CAPRICORN:
- $range = [[12, 22], [1, 20]];
- break;
- }
- return $range;
- }
- /**
- * Zodiac Sign for given day and month
- *
- * @param month
- * @param day
- * expects valid values
- * @return int sign or false on failure
- */
- public function getSign($month, $day) {
- switch ($month) {
- case 1:
- $zodiac = ($day <= 20) ? static::SIGN_CAPRICORN : static::SIGN_AQUARIUS;
- break;
- case 2:
- $zodiac = ($day <= 19) ? static::SIGN_AQUARIUS : static::SIGN_PISCES;
- break;
- case 3:
- $zodiac = ($day <= 20) ? static::SIGN_PISCES : static::SIGN_ARIES;
- break;
- case 4:
- $zodiac = ($day <= 20) ? static::SIGN_ARIES : static::SIGN_TAURUS;
- break;
- case 5 :
- $zodiac = ($day <= 21) ? static::SIGN_TAURUS : static::SIGN_GEMINI;
- break;
- case 6 :
- $zodiac = ($day <= 21) ? static::SIGN_GEMINI : static::SIGN_CANCER;
- break;
- case 7 :
- $zodiac = ($day <= 23) ? static::SIGN_CANCER : static::SIGN_LEO;
- break;
- case 8 :
- $zodiac = ($day <= 23) ? static::SIGN_LEO : static::SIGN_VIRGO;
- break;
- case 9 :
- $zodiac = ($day <= 23) ? static::SIGN_VIRGO : static::SIGN_LIBRA;
- break;
- case 10 :
- $zodiac = ($day <= 23) ? static::SIGN_LIBRA : static::SIGN_SCORPIO;
- break;
- case 11 :
- $zodiac = ($day <= 22) ? static::SIGN_SCORPIO : static::SIGN_SAGITTARIUS;
- break;
- case 12 :
- $zodiac = ($day <= 21) ? static::SIGN_SAGITTARIUS : static::SIGN_CAPRICORN;
- break;
- }
- return $zodiac;
- }
- /**
- * ZodiacLib::getChineseSign()
- *
- * @param mixed $year
- * @param mixed $month
- * @param mixed $day
- * @return void
- */
- public function getChineseSign($year, $month, $day) {
- //TODO
- }
- /**
- * ZodiacLib::getNativeAmericanSign()
- *
- * @param mixed $month
- * @param mixed $day
- * @return void
- */
- public function getNativeAmericanSign($month, $day) {
- //TODO
- }
- /**
- * List of all signs
- *
- * @return mixed
- */
- public static function signs($value = null) {
- $res = [
- static::SIGN_AQUARIUS => __d('tools', 'zodiacAquarius'),
- static::SIGN_PISCES => __d('tools', 'zodiacPisces'),
- static::SIGN_ARIES => __d('tools', 'zodiacAries'),
- static::SIGN_TAURUS => __d('tools', 'zodiacTaurus'),
- static::SIGN_GEMINI => __d('tools', 'zodiacGemini'),
- static::SIGN_CANCER => __d('tools', 'zodiacCancer'),
- static::SIGN_LEO => __d('tools', 'zodiacLeo'),
- static::SIGN_VIRGO => __d('tools', 'zodiacVirgo'),
- static::SIGN_LIBRA => __d('tools', 'zodiacLibra'),
- static::SIGN_SCORPIO => __d('tools', 'zodiacScorpio'),
- static::SIGN_SAGITTARIUS => __d('tools', 'zodiacSagittarius'),
- static::SIGN_CAPRICORN => __d('tools', 'zodiacCapricorn'),
- ];
- if ($value === null) {
- return $res;
- }
- return $res[$value];
- }
- /**
- * ZodiacLib::image()
- *
- * @param int $sign
- * @return string
- */
- public static function image($sign) {
- return static::$res[$sign];
- }
- const SIGN_AQUARIUS = 1; # from 20.01. to 18.02.
- const SIGN_PISCES = 2; # from 19 Febbraio to 20 marzo
- const SIGN_ARIES = 3;
- const SIGN_TAURUS = 4;
- const SIGN_GEMINI = 5;
- const SIGN_CANCER = 6;
- const SIGN_LEO = 7;
- const SIGN_VIRGO = 8; # from 23.08. to 22.09.
- const SIGN_LIBRA = 9;
- const SIGN_SCORPIO = 10;
- const SIGN_SAGITTARIUS = 11;
- const SIGN_CAPRICORN = 12;
- }
- /*
- 2 aries1.gif from 21 Marzo to 20 Aprile
- 3 cancer1.gif from 22 Giugno to 22 luglio
- 4 cap1.gif from 22 Dicembre to 20 gennaio
- 5 gemini1.gif from 22 Maggio to 22 giugno
- 6 leo1.gif from 22 Luglio to 21 agosto
- 7 libra1.gif from 24 Settembre to 23 ottobre
- 8
- 9 sag1.gif from 22 Novembre to 22 dicembre
- 10 scorpio1.gif from 24 Ottobre to 21 novembre
- 11 taurus1.gif from 21 Aprile to 21 Maggio
- Wassermann (21. Januar - 19. Februar)
- Fische (20. Februar - 20. März)
- Widder (21. März - 20. April)
- Stier (21. April - 20. Mai)
- Zwillinge (21. Mai - 21. Juni)
- Krebs (22. Juni - 22. Juli)
- Löwe (23. Juli - 23. August)
- Jungfrau (24. August - 23. September)
- Waage (24. September - 23. Oktober)
- Skorpion (24. Oktober - 22. November)
- Schütze (23. November - 21. Dezember)
- Steinbock (22. Dezember - 20. Januar)
- */
|