UE4根據日期獲得星期幾


.h 

/* 根據日期獲得星期幾 C為年份前兩位,Year為年份后兩位,Month為月份,Day為號數,
    如果Day/Month任意一項為0的時候,那么則根據當前系統時間計算  */
    UFUNCTION(BlueprintCallable,BlueprintPure, Category = "DayOfWeek")
        void GetDayOfWeek(int32 Day, int32 Month, int32 Year, int32 C, int32& W);

.cpp

void URealisWidget::GetDayOfWeek(int32 Day, int32 Month, int32 Year, int32 C, int32& W)
{
    /*如果Day/Month任意一項為0的時候,那么則根據當前系統時間計算*/
    if (Day == 0 || Month == 0)
    {
        FDateTime Time = FDateTime::Now();

        FString CAndYear = FString::FromInt(Time.GetYear());
        FString Century = UKismetStringLibrary::GetSubstring(CAndYear, 0, 2);
        FString Y = UKismetStringLibrary::GetSubstring(CAndYear, 2, 4);
        C = FCString::Atoi(*Century);
        Year = FCString::Atoi(*Y);
        Month = Time.GetMonth();
        Day = Time.GetDay();
    }

    /* 1、2月份需看作上一年的13、14月來計算 */
    if (Month == 1 || Month == 2)
    {
        Month += 12;
        if (Year == 0)
        {
            Year = 99;
            C -= 1;
        }
        else
        {
            Year -= 1;
        }

    }

    W = (FMath::CeilToInt(C / 4) - 2 * C + Year + 
        FMath::CeilToInt(Year / 4) + FMath::CeilToInt(26 * (Month + 1) / 10) + Day - 1) % 7;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM