Дата по сравнению с DateTime

Кажется, что метод destroy разработан неправильно, и неясно, почему у вас нет ошибок в браузере во время выполнения: переменная this.app обнуляется раньше, чем удаляются все дочерние элементы из нее [ 115] while (this.app.children [0])

Для начала я бы порекомендовал изменить метод следующим образом:

destroy(){
    while(this.app.children[0]) { 
        this.app.removeChild(this.app.children[0]);
    }

    this.app.destroy(true);
    this.app = null;

    this.renderer.view.destroy( true );
    this.renderer.view = null;

    this.renderer.destroy( true );
    this.renderer = null;
    console.log('PIXI APP APPENDED:', this.app);
}

Также убедитесь, что ваши ошибки не связаны с тем, что подростки все еще активны, но их цели-подростки уже аннулированы / удалены / уничтожены. Если это так, то в дополнение к удалению визуальных объектов вам нужно остановить / уничтожить всех подростков.

101
задан Chimera 22 February 2019 в 17:44
поделиться

9 ответов

Нет, нет. DateTime представляет собой некоторый момент времени, который состоит из даты и времени. Однако вы можете получить часть даты через свойство Date (которое является другим DateTime с временем, установленным в 00:00:00 ).

И вы можете получить отдельные свойства даты через День , Месяц и Год .

121
ответ дан 24 November 2019 в 04:42
поделиться

К сожалению, нет в .Net BCL. Даты обычно представляются в виде объекта DateTime с временем, установленным на полночь.

Как вы можете догадаться, это означает, что у вас есть все сопутствующие проблемы с часовым поясом вокруг него, даже если для объекта Date вам совершенно не нужно обрабатывать часовой пояс. .

14
ответ дан 24 November 2019 в 04:42
поделиться

Создать класс-оболочку. Примерно так:

public class Date:IEquatable<Date>,IEquatable<DateTime>
    {
        public Date(DateTime date)
        {
            value = date.Date;
        }

        public bool Equals(Date other)
        {
            return other != null && value.Equals(other.value);
        }

        public bool Equals(DateTime other)
        {
            return value.Equals(other);
        }

        public override string ToString()
        {
            return value.ToString();
        }
        public static implicit operator DateTime(Date date)
        {
            return date.value;
        }
        public static explicit operator Date(DateTime dateTime)
        {
            return new Date(dateTime);
        }

        private DateTime value;
    }

И выставьте любое значение , которое вы хотите.

9
ответ дан 24 November 2019 в 04:42
поделиться

Тип Date - это просто псевдоним типа DateTime, используемый VB.NET (например, int становится Integer). Оба этих типа имеют свойство Date, которое возвращает объект с частью времени, установленной на 00:00:00.

5
ответ дан 24 November 2019 в 04:42
поделиться

DateTime имеет свойство Date , которое можно использовать для выделения части даты. Метод ToString также хорошо справляется с отображением части даты, только когда часть времени пуста.

4
ответ дан 24 November 2019 в 04:42
поделиться

У объекта DateTime есть свойство, которое возвращает только часть даты значения.

    public static void Main()
{
    System.DateTime _Now = DateAndTime.Now;
    Console.WriteLine("The Date and Time is " + _Now);
    //will return the date and time
    Console.WriteLine("The Date Only is " + _Now.Date);
    //will return only the date
    Console.Write("Press any key to continue . . . ");
    Console.ReadKey(true);
}
3
ответ дан 24 November 2019 в 04:42
поделиться

Вы можете вернуть DateTime, где часть времени равна 00:00:00, и просто игнорировать ее. Даты обрабатываются как целые метки времени, поэтому имеет смысл объединить дату со временем, так как оно в любом случае присутствует в целом числе.

2
ответ дан 24 November 2019 в 04:42
поделиться

For this, you need to use the date, but ignore the time value.

Ordinarily a date would be a DateTime with time of 00:00:00

The DateTime type has a .Date property which returns the DateTime with the time value set as above.

2
ответ дан 24 November 2019 в 04:42
поделиться

Вы можете попробовать одно из следующего:

DateTime.Now.ToLongDateString();
DateTime.Now.ToShortDateString();

Но в BCL нет типа «Дата».

0
ответ дан 24 November 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: