ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
@@ -611,31 +611,73 @@
        return {}
    return actNumDict[actNum]
def GetOperationActionDateStr(dateInfo, openServerDay):
    '''获取运营活动对应日期,存数字代表开服天配置,需要转化为对应的日期
    @param dateInfo: 运营活动表配置的日期信息, 如果是纯数字代表开服天
    @param openServerDay: 当前开服天
    '''
    if not dateInfo:
        curDateTime = datetime.datetime.today()
        return "%d-%d-%d" % (curDateTime.year, curDateTime.month, curDateTime.day)
    if dateInfo.startswith("W"):
        curDateTime = datetime.datetime.today()
        curWeekday = curDateTime.weekday() + 1
        actionWeekday = int(dateInfo[1:])
        actionDateTime = curDateTime + datetime.timedelta(days=(actionWeekday-curWeekday))
        return "%d-%d-%d" % (actionDateTime.year, actionDateTime.month, actionDateTime.day)
    if dateInfo.startswith("Mix"):
        diffDay = GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_MixServerDay) + 1
        actionServerDay = int(dateInfo[3:])
    elif not dateInfo.isdigit():
        return dateInfo
    else:
        diffDay = openServerDay
        actionServerDay = int(dateInfo)
def GetOperationActionDateStr(ipyData):
    ## 获取运营活动对应日期,存数字代表开服天配置,需要转化为对应的日期
    curDateTime = datetime.datetime.today()
    actionDateTime = curDateTime + datetime.timedelta(days=(actionServerDay-diffDay))
    return "%d-%d-%d" % (actionDateTime.year, actionDateTime.month, actionDateTime.day)
    startDateStr = ipyData.GetStartDate()
    endDateStr = ipyData.GetEndDate()
    if not startDateStr:
        startDateStr = "%d-%d-%d" % (curDateTime.year, curDateTime.month, curDateTime.day)
    if not endDateStr:
        endDateStr = "%d-%d-%d" % (curDateTime.year, curDateTime.month, curDateTime.day)
    # 日期直接返回
    if startDateStr.count("-") == 2 and "W" not in startDateStr:
        return startDateStr, endDateStr
    # 开服天
    if startDateStr.isdigit():
        diffDay = GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
        startDateTime = curDateTime + datetime.timedelta(days=(int(startDateStr)-diffDay))
        endDateTime = curDateTime + datetime.timedelta(days=(int(endDateStr)-diffDay))
    # 合服天
    elif startDateStr.startswith("Mix"):
        diffDay = GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_MixServerDay) + 1
        startDateTime = curDateTime + datetime.timedelta(days=(int(startDateStr[3:])-diffDay))
        endDateTime = curDateTime + datetime.timedelta(days=(int(endDateStr[3:])-diffDay))
    # 周循环, 直接配置 Wx 或 Wx|有效开始日期  或 Wx|有效结束日期
    elif startDateStr.startswith("W"):
        curWeekday = curDateTime.weekday() + 1
        startWeekDateInfo = startDateStr.split("|")
        startWeekInfo = startWeekDateInfo[0]
        startWeekday = int(startWeekInfo[1:])
        startDateTime = curDateTime + datetime.timedelta(days=(startWeekday-curWeekday))
        # 限制开启循环日期
        if len(startWeekDateInfo) > 1:
            startLoopDateStr = startWeekDateInfo[1]
            startLoopDateTime = ChangeStrToDatetime(startLoopDateStr, ChConfig.TYPE_Time_Format_Day)
            if startLoopDateTime > startDateTime:
                startDateTime = startLoopDateTime
        startWeekDay = startDateTime.weekday() + 1 # 实际开启活动是周几,不一定和配置的周几一样,可能从中间被截断开始
        # 处理周循环的结束日期
        endWeekDateInfo = endDateStr.split("|")
        endWeekInfo = endWeekDateInfo[0]
        endWeekday = int(endWeekInfo[1:])
        endDateTime = startDateTime + datetime.timedelta(days=(endWeekday-startWeekDay))
        if len(endWeekDateInfo) > 1:
            endLoopDateStr = endWeekDateInfo[1]
            endLoopDateTime = ChangeStrToDatetime(endLoopDateStr, ChConfig.TYPE_Time_Format_Day)
            if endDateTime > endLoopDateTime:
                endDateTime = endLoopDateTime
            # 只配置结束日期的时候可能导致开始日期计算出来比结束日期还大,即当前时间超过结束日期,且 配置还存在的情况
            if startDateTime > endDateTime:
                startDateTime = endDateTime # 反正都无法开启,随便给个日期,不超过结束日期即可
    # 默认
    else:
        startDateTime = curDateTime
        endDateTime = curDateTime
    startDateStr = "%d-%d-%d" % (startDateTime.year, startDateTime.month, startDateTime.day)
    endDateStr = "%d-%d-%d" % (endDateTime.year, endDateTime.month, endDateTime.day)
    return startDateStr, endDateStr
##获得服务器系统时间
# @param 无