KoreanDateUtil.java
上传用户:gwt600
上传日期:2021-06-03
资源大小:704k
文件大小:3k
源码类别:

游戏

开发平台:

Java

  1. /*
  2. This file is part of the OdinMS Maple Story Server
  3.     Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc> 
  4.                        Matthias Butz <matze@odinms.de>
  5.                        Jan Christian Meyer <vimes@odinms.de>
  6.     This program is free software: you can redistribute it and/or modify
  7.     it under the terms of the GNU Affero General Public License version 3
  8.     as published by the Free Software Foundation. You may not use, modify
  9.     or distribute this program under any other version of the
  10.     GNU Affero General Public License.
  11.     This program is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.     GNU Affero General Public License for more details.
  15.     You should have received a copy of the GNU Affero General Public License
  16.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  17.  */
  18. package net.sf.odinms.tools;
  19. /**
  20.  * Provides a suite of tools for manipulating Korean Timestamps.
  21.  * 
  22.  * @author Frz
  23.  * @since Revision 746
  24.  * @version 1.0
  25.  */
  26. public class KoreanDateUtil {
  27.         private final static int ITEM_YEAR2000 = -1085019342;
  28.         private final static long REAL_YEAR2000 = 946681229830l;
  29.   //      private final static long FT_UT_OFFSET2 = 116444484000000000L; // PDT
  30.           private final static long FT_UT_OFFSET2 = 116444448000000000L; // PST
  31.           private final static long FT_UT_OFFSET = 116444736000000000L; // 100 nsseconds from 1/1/1601 -> 1/1/1970
  32.  
  33.           /**
  34.            * Dummy constructor for static classes.
  35.          */
  36.           private KoreanDateUtil() {
  37.         }
  38.  
  39.           /**
  40.          * Converts a Unix Timestamp into File Time
  41.            *
  42.          * @param realTimestamp The actual timestamp in milliseconds.
  43.          * @return A 64-bit long giving a filetime timestamp
  44.            */
  45.         public static long getTempBanTimestamp(long realTimestamp) {
  46.                   // long time = (realTimestamp / 1000);//seconds
  47.                   return ((realTimestamp * 10000) + FT_UT_OFFSET);
  48.         }
  49.         /**
  50.          * Gets a timestamp for item expiration.
  51.            *
  52.            * @param realTimestamp The actual timestamp in milliseconds.
  53.            * @return The Korean timestamp for the real timestamp.
  54.            */
  55.           public static int getItemTimestamp(long realTimestamp) {
  56.                 int time = (int) ((realTimestamp - REAL_YEAR2000) / 1000 / 60); // convert to minutes
  57.                   return (int) (time * 35.762787) + ITEM_YEAR2000;
  58.         }
  59.           /**
  60.            * Gets a timestamp for quest repetition.
  61.            *
  62.          * @param realTimestamp The actual timestamp in milliseconds.
  63.            * @return The timestamp
  64.          */
  65.         public static long getQuestTimestamp(long realTimestamp) {
  66.                 long time = (realTimestamp / 1000); // convert to seconds
  67.                   return ((time * 10000000) + FT_UT_OFFSET2);
  68.           }
  69.   }