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;
}
}
Related examples in the same category
1. | Get the days difference | | |
2. | Get the days passed from the specified date up to the date provided in the constructor | | |
3. | Get the hours difference | | |
4. | Get the minutes difference | | |
5. | Get the seconds difference | | |
6. | Adds a number of days to a date returning a new object. | | |
7. | Adds a number of hours to a date returning a new object. | | |
8. | Adds a number of milliseconds to a date returning a new object. | | |
9. | Adds a number of minutes to a date returning a new object. | | |
10. | Adds a number of months to a date returning a new object. | | |
11. | Adds a number of seconds to a date returning a new object. | | |
12. | Adds a number of weeks to a date returning a new object. | | |
13. | Adds a number of years to a date returning a new object. | | |
14. | Returns a Date set just to Noon, to the closest possible millisecond of the day. | | |
15. | Returns a Date set to the first possible millisecond of the day, just after midnight. | | |
16. | Returns a Date set to the first possible millisecond of the month, just after midnight. | | |
17. | Returns a Date set to the last possible millisecond of the day, just before midnight. | | |
18. | Returns a Date set to the last possible millisecond of the minute. | | |
19. | Returns a Date set to the last possible millisecond of the month, just before midnight. | | |
20. | Returns a java.sql.Timestamp equal to the current time | | |
21. | Returns the number of days within the fragment. | | |
22. | Returns the number of hours within the fragment. | | |
23. | Returns the number of milliseconds within the fragment. | | |
24. | Returns the number of minutes within the fragment. | | |
25. | Returns the number of seconds within the fragment. | | |
26. | Returns true if endDate is after startDate or if startDate equals endDate. | | |
27. | Roll the days forward or backward | | |
28. | Roll the java.sql.Date forward or backward | | |
29. | Roll the java.util.Date forward or backward | | |
30. | Roll the java.util.Time forward or backward | | |
31. | Roll the years forward or backward | | |
32. | Round this date, leaving the field specified as the most significant field. | | |
33. | Checking date as String formatted by a date format | | |
34. | Checks if a calendar date is after today and within a number of days in the future | | |
35. | Checks if a calendar date is today | | |
36. | Checks if a date is after today and within a number of days in the future | | |
37. | Checks if the first calendar date is after the second calendar date ignoring time | | |
38. | Checks if the first calendar date is before the second calendar date ignoring time | | |
39. | Checks if the first date is after the second date ignoring time | | |
40. | Checks if the first date is before the second date ignoring time | | |
41. | Checks if two calendars represent the same day ignoring time | | |
42. | Checks if two dates are on the same day ignoring time | | |
43. | Checks the day, month and year are equal | | |
44. | Checks the hour, minute and second are equal | | |
45. | Make the date go forward of the specified amount of minutes | | |
46. | Make the date go back of the specified amount of days | | |
47. | Returns the maximum of two dates. A null date is treated as being less than any non-null date | | |
48. | Utilities to working with dates java.util.Date | | |
49. | Calculate Holidays | | |
50. | Compare two dates | | |
51. | Convert time in milliseconds into a display string of the form [h]h:mm[am|pm] | | |
52. | convert a minute-of-week time to time of day as dd:dd [AM|PM] | | |
53. | Convert a minute-of-week time to time of day as dd:dd (24 hour format) | | |
54. | Convert passed time into an offset string | | |
55. | convert date in milliseconds into the native format of the server - i.e. minute of the week | | |
56. | Convert date in milliseconds into minute of the day | | |
57. | Convert milliseconds into the day of the week string | | |
58. | Convert milliseconds into a short day of the week string | | |
59. | Convert milliseconds into the month of the year string | | |
60. | Convert time to a sliding window format | | |
61. | Get age | | |
62. | Get Next Monday | | |
63. | Get next Sunday | | |
64. | Get File system Path From Date | | |
65. | Get today's date | | |
66. | Get Month, Day of Month, year from a Date | | |
67. | A method to get the last day of a month | | |
68. | Get Age | | |
69. | Get date of yesterday | | |
70. | Get date of last week | | |
71. | Get date of last month | | |
72. | Utility for setting the time on a date. | | |
73. | Get last Date of This Month | | |
74. | General purpose date utilities. | | |
75. | Get Last day from previous Month | | |
76. | Get Local Epoch | | |