.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;
}