diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index 4393874a6..36eef416b 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -843,6 +843,24 @@ public class TimeUtils { return c.getTimeInMillis(); } + /** + * 获取当前月份最后一天23:59:59秒时间戳 + */ + public static long getCurMonthEndTime(){ + //获取当前月最后一天 + Calendar ca = Calendar.getInstance(); + ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); + //将小时至0 + ca.set(Calendar.HOUR_OF_DAY, 23); + //将分钟至0 + ca.set(Calendar.MINUTE, 59); + //将秒至0 + ca.set(Calendar.SECOND,59); + //将毫秒至0 + ca.set(Calendar.MILLISECOND, 1000); + return ca.getTimeInMillis(); + } + /** * x:第几天 * next:距离当前月几个月 @@ -860,6 +878,24 @@ public class TimeUtils { return c.getTimeInMillis(); } + /** + * time :时间戳 + * x:第几天 + * next:距离当前月几个月 + * 获取距离时间戳 几个月份第几天0点时间戳 + */ + public static long getMonthStartTime(long time,int x,int next){ + Calendar c = Calendar.getInstance(); + c.setTime(new Date(time)); + c.add(Calendar.MONTH,next); + c.set(Calendar.DAY_OF_MONTH, x); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND,0); + c.set(Calendar.MILLISECOND, 0); + return c.getTimeInMillis(); + } + /** * 获取距离现在最早的下一个周几的时间 * @param targetWeekday diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index c15f7f39f..875864de8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -148,7 +148,7 @@ public class ActivityLogic implements IEventHandler{ //开服日期 String openTime = GameApplication.serverConfig.getOpenTime().split(" ")[0]; String nowTime = TimeUtils.getTimeStampYMDnew(TimeUtils.now()); - now = TimeUtils.getGapMonthsByTwoTime(openTime, nowTime)+1; + //now = TimeUtils.getGapMonthsByTwoTime(openTime, nowTime)+1; } long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1); long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index 650712ac4..91f082cff 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -12,13 +12,28 @@ public class ToolsUtil { baseTime = endTimeLong; } long startTime=0; - if(time == ActivityType.OPEN_TYPE_TIME || time == ActivityType.OPEN_TYPE_MONTHS){ + if(time == ActivityType.OPEN_TYPE_TIME ){ startTime = baseTime; }else if(time == ActivityType.OPEN_TYPE_SERVER){ long serverOpenTime = GameApplication.serverConfig.getCacheOpenTime(); startTime = serverOpenTime + baseTime*1000; }else if(time == ActivityType.OPEN_TYPE_ROLE){ startTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000; + }else if(time == ActivityType.OPEN_TYPE_MONTHS){ + if(type == 1){ + if(baseTime ==1){ + //第一个月 + startTime = GameApplication.serverConfig.getCacheOpenTime(); + }else{ + startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime-1); + } + }else if(type ==2){ + if(baseTime ==1){ + startTime = TimeUtils.getCurMonthEndTime(); + }else{ + startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime); + } + } } return startTime; }