Skip to content

Commit

Permalink
v1.0.3 新增节气第几天;优化枚举。
Browse files Browse the repository at this point in the history
  • Loading branch information
6tail committed Jun 6, 2024
1 parent 0f9d2ed commit ca10a6b
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 30 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@
2. 新增:公历日获取公历周。
3. 修复:公历半年、公历季度、公历时刻推移的错误。
4. 修复:公历季度初始化的错误。

## [1.0.3] - 2024-06-06
1. 新增:节气第几天。
2. 优化:枚举。
18 changes: 9 additions & 9 deletions src/enums/FestivalType.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,25 @@ function getName(): string

static function fromCode(int $code): FestivalType
{
return match (true) {
$code == 0 => self::DAY,
$code == 1 => self::TERM,
$code == 2 => self::EVE,
return match ($code) {
0 => self::DAY,
1 => self::TERM,
2 => self::EVE,
default => null
};
}

static function fromName(string $name): FestivalType
{
return match (true) {
$name == '日期' => self::DAY,
$name == '节气' => self::TERM,
$name == '除夕' => self::EVE,
return match ($name) {
'日期' => self::DAY,
'节气' => self::TERM,
'除夕' => self::EVE,
default => null
};
}

function equals(Side $o): bool
function equals(FestivalType $o): bool
{
return $this->value == $o->value;
}
Expand Down
14 changes: 7 additions & 7 deletions src/enums/Gender.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,23 +27,23 @@ function getName(): string

static function fromCode(int $code): Gender
{
return match (true) {
$code == 0 => self::WOMAN,
$code == 1 => self::MAN,
return match ($code) {
0 => self::WOMAN,
1 => self::MAN,
default => null
};
}

static function fromName(string $name): Gender
{
return match (true) {
$name == '' => self::WOMAN,
$name == '' => self::MAN,
return match ($name) {
'' => self::WOMAN,
'' => self::MAN,
default => null
};
}

function equals(Side $o): bool
function equals(Gender $o): bool
{
return $this->value == $o->value;
}
Expand Down
12 changes: 6 additions & 6 deletions src/enums/Side.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,18 @@ function getName(): string

static function fromCode(int $code): Side
{
return match (true) {
$code == 0 => self::IN,
$code == 1 => self::OUT,
return match ($code) {
0 => self::IN,
1 => self::OUT,
default => null
};
}

static function fromName(string $name): Side
{
return match (true) {
$name == '' => self::IN,
$name == '' => self::OUT,
return match ($name) {
'' => self::IN,
'' => self::OUT,
default => null
};
}
Expand Down
12 changes: 6 additions & 6 deletions src/enums/YinYang.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,18 @@ function getName(): string

static function fromCode(int $code): YinYang
{
return match (true) {
$code == 1 => self::YANG,
$code == 0 => self::YIN,
return match ($code) {
1 => self::YANG,
0 => self::YIN,
default => null
};
}

static function fromName(string $name): YinYang
{
return match (true) {
$name == '' => self::YANG,
$name == '' => self::YIN,
return match ($name) {
'' => self::YANG,
'' => self::YIN,
default => null
};
}
Expand Down
16 changes: 14 additions & 2 deletions src/solar/SolarDay.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,12 +184,24 @@ function isAfter(SolarDay $target): bool
* @return SolarTerm 节气
*/
function getTerm(): SolarTerm
{
return $this->getTermDay()->getSolarTerm();
}

/**
* 节气第几天
*
* @return SolarTermDay 节气第几天
*/
function getTermDay(): SolarTermDay
{
$term = SolarTerm::fromIndex($this->month->getYear()->getYear() + 1, 0);
while ($this->isBefore($term->getJulianDay()->getSolarDay())) {
$day = $term->getJulianDay()->getSolarDay();
while ($this->isBefore($day)) {
$term = $term->next(-1);
$day = $term->getJulianDay()->getSolarDay();
}
return $term;
return new SolarTermDay($term, $this->subtract($day));
}

/**
Expand Down
29 changes: 29 additions & 0 deletions src/solar/SolarTermDay.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace com\tyme\solar;


use com\tyme\AbstractCultureDay;

/**
* 节气第几天
* @author 6tail
* @package com\tyme\solar
*/
class SolarTermDay extends AbstractCultureDay
{
function __construct(SolarTerm $solarTerm, int $dayIndex)
{
parent::__construct($solarTerm, $dayIndex);
}

/**
* 节气
*
* @return SolarTerm 节气
*/
function getSolarTerm(): SolarTerm
{
return $this->culture;
}
}
13 changes: 13 additions & 0 deletions test/SolarTermTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,17 @@ function test3()
{
$this->assertEquals('寒露', SolarDay::fromYmd(2023, 10, 10)->getTerm()->getName());
}

function test4()
{
// 大雪当天
$this->assertEquals("大雪第1天", SolarDay::fromYmd(2023, 12, 7)->getTermDay()->__toString());
// 天数索引
$this->assertEquals(0, SolarDay::fromYmd(2023, 12, 7)->getTermDay()->getDayIndex());

$this->assertEquals("大雪第2天", SolarDay::fromYmd(2023, 12, 8)->getTermDay()->__toString());
$this->assertEquals("大雪第15天", SolarDay::fromYmd(2023, 12, 21)->getTermDay()->__toString());

$this->assertEquals("冬至第1天", SolarDay::fromYmd(2023, 12, 22)->getTermDay()->__toString());
}
}

0 comments on commit ca10a6b

Please sign in to comment.