Mega Code Archive

 
Categories / Java / Data Type
 

Convert date in minute of the week format into millisecond format

/**  * Copyright (c) 2006 Richard Rodgers  *  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at  *  *     http://www.apache.org/licenses/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */ //package com.monad.homerun.util; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /**  * TimeUtil is a utility class with static methods to convert times in various  * formats into other formats  */ public class TimeUtil {   private static final int MINS_PER_DAY = 60 * 24;   private static final long MS_PER_DAY = 1000 * 60 * MINS_PER_DAY;   private static final int SEC = 1000;   private static final int MIN = SEC * 60;   private static final int HOUR = MIN * 60;   private static final int DAY = HOUR * 24;   private static final long WEEK = DAY * 7;   private static final long YEAR = WEEK * 52;   private static final long[] buckets = { YEAR, WEEK, DAY, HOUR, MIN, SEC };   private static final String[] bucketNames = { "year", "week", "day",       "hour", "minute", "second" };   private static GregorianCalendar statFmtCal = new GregorianCalendar();   private static final String ts24Pat = "H:mm:ss yy-MM-dd";   // convert date in minute of the week format into millisecond format   public static long dateFormat(short weekMins) {     long dateMillis = System.currentTimeMillis();     synchronized (statFmtCal) {       statFmtCal.setTime(new Date(dateMillis));       // get the day of the week       int nowDay = statFmtCal.get(Calendar.DAY_OF_WEEK) - 1;       // get day of the week of stat time       int statDay = weekMins / 1440;       if (nowDay > statDay) {         dateMillis -= (nowDay - statDay) * 1440 * 60 * 1000;       } else if (nowDay < statDay) {         dateMillis += (statDay - nowDay) * 1440 * 60 * 1000;       }       // now get the hour of the day       int nowHour = statFmtCal.get(Calendar.HOUR_OF_DAY);       int statHour = (weekMins % 1440) / 60;       if (nowHour > statHour) {         dateMillis -= (nowHour - statHour) * 60 * 60 * 1000;       } else if (nowHour < statHour) {         dateMillis += (statHour - nowHour) * 60 * 60 * 1000;       }       // finally minutes       int nowMins = statFmtCal.get(Calendar.MINUTE);       int statMins = (weekMins % 1440) % 60;       if (nowMins > statMins) {         dateMillis -= (nowMins - statMins) * 60 * 1000;       } else if (nowMins < statMins) {         dateMillis += (statMins - nowMins) * 60 * 1000;       }     }     return dateMillis;   } }