Author: bback
Date: 2006-02-15 07:45:22 +0000 (Wed, 15 Feb 2006)
New Revision: 8047
Modified:
trunk/apps/frost-0.7/source/frost/DateFun.java
Log:
better date functions
Modified: trunk/apps/frost-0.7/source/frost/DateFun.java
===================================================================
--- trunk/apps/frost-0.7/source/frost/DateFun.java 2006-02-15 07:44:19 UTC
(rev 8046)
+++ trunk/apps/frost-0.7/source/frost/DateFun.java 2006-02-15 07:45:22 UTC
(rev 8047)
@@ -1,276 +1,275 @@
-/*
- DateFun.java / Frost
- Copyright (C) 2001 Jan-Thomas Czornack <jantho at users.sourceforge.net>
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-package frost;
-import java.util.*;
-import java.util.logging.Logger;
-
-
-public class DateFun
-{
- private static Logger logger =
Logger.getLogger(DateFun.class.getName());
-
- /**
- * Returns date
- * @return Date as String yyyy.m.d in GMT without leading zeros
- */
- public static String getDate()
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- return new StringBuffer(11).append(cal.get(Calendar.YEAR)).append(".")
- .append(cal.get(Calendar.MONTH) +
1).append(".").append(cal.get(Calendar.DATE)).toString();
- }
-
- /**
- * Returns date -n days.
- * @return Date as String yyyy.m.d in GMT without leading zeros
- */
- public static String getDate(int daysAgo) {
- GregorianCalendar cal = new GregorianCalendar();
- if( daysAgo != 0 ) {
- cal.add(Calendar.DATE,-daysAgo);
- }
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- return new StringBuffer(11).append(cal.get(Calendar.YEAR)).append(".")
- .append(cal.get(Calendar.MONTH) +
1).append(".").append(cal.get(Calendar.DATE)).toString();
- }
-
- /**
- * Returns date -n days.
- * @return Date as String yyyy.mm.dd in GMT WITH leading zeros
- */
- public static String getExtendedDate(int daysAgo) {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- cal.add(Calendar.DATE,-daysAgo);
- int year = cal.get(Calendar.YEAR);
- int month = cal.get(Calendar.MONTH) + 1;
- int day = cal.get(Calendar.DATE);
- StringBuffer sb = new StringBuffer(11);
- sb.append(year).append(".");
- if( month < 10 )
- sb.append("0");
- sb.append(month).append(".");
- if( day < 10 )
- sb.append("0");
- sb.append(day);
- return sb.toString();
- }
-
- /**
- * Returns time
- * @return Time as String h:m:s in GMT without leading zeros
- */
- public static String getTime()
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- return new
StringBuffer(9).append(cal.get(Calendar.HOUR_OF_DAY)).append(":")
-
.append(cal.get(Calendar.MINUTE)).append(":").append(cal.get(Calendar.SECOND)).toString();
- }
-
- /**
- * Returns date with leading zeroes
- * @return Date as String yyyy.MM.dd in GMT with leading zeros
- */
- public static String getExtendedDate()
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- int year = cal.get(Calendar.YEAR);
- int month = cal.get(Calendar.MONTH) + 1;
- int day = cal.get(Calendar.DATE);
- StringBuffer sb = new StringBuffer(11);
- sb.append(year).append(".");
- if( month < 10 )
- sb.append("0");
- sb.append(month).append(".");
- if( day < 10 )
- sb.append("0");
- sb.append(day);
- return sb.toString();
- }
- /**
- * Returns date with leading zeroes
- * @return Date as String yyyy.MM.dd in GMT with leading zeros
- */
- public static String getVisibleExtendedDate()
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- int year = cal.get(Calendar.YEAR);
- int month = cal.get(Calendar.MONTH) + 1;
- int day = cal.get(Calendar.DATE);
- StringBuffer sb = new StringBuffer(11);
- if( day < 10 )
- sb.append("0");
- sb.append(day).append(".");
- if( month < 10 )
- sb.append("0");
- sb.append(month).append(".");
- sb.append(year);
- return sb.toString();
- }
-
- /**
- * Returns time with leading zeroes
- * @return Time as String h:mm:ss in GMT with leading zeros
- */
- public static String getExtendedTime()
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- int hour = cal.get(Calendar.HOUR_OF_DAY);
- int minute = cal.get(Calendar.MINUTE);
- int second = cal.get(Calendar.SECOND);
- StringBuffer sb = new StringBuffer(9);
- // if( hour<10 ) // commented out to keep old behaviour, see below
- // sb.append("0");
- sb.append(hour).append(":");
- if( minute < 10 )
- sb.append("0");
- sb.append(minute).append(":");
- if( second < 10 )
- sb.append("0");
- sb.append(second);
- return sb.toString();
- /*
- String sHour = String.valueOf(hour);
- String sMinute = String.valueOf(minute);
- String sSecond = String.valueOf(second);
- if (hour < 10)
- sHour = "0" + sHour;
- if (minute < 10)
- sMinute = "0" + sMinute;
- if (second < 10)
- sSecond = "0" + sSecond;
- return hour + ":" + sMinute +":" + sSecond; <-- bug or feature?
uses hour instead of sHour as prepared
- */
- }
- /**
- * Returns time with leading zeroes
- * @return Time as String hh:mm:ss in GMT with leading zeros
- *
- * **** getExtendedDate() returns h:mm:ss, this returns the correct
hh:mm:ss
- *
- */
- public static String getFullExtendedTime()
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- int hour = cal.get(Calendar.HOUR_OF_DAY);
- int minute = cal.get(Calendar.MINUTE);
- int second = cal.get(Calendar.SECOND);
- StringBuffer sb = new StringBuffer(9);
- if( hour<10 )
- sb.append("0");
- sb.append(hour).append(":");
- if( minute < 10 )
- sb.append("0");
- sb.append(minute).append(":");
- if( second < 10 )
- sb.append("0");
- sb.append(second);
- return sb.toString();
- }
-
- /**
- * Converts a String with format: DATE.MONTH.YEAR HOUR:MINUTE:SECONDGMT
- * to a Calendar object.
- * @param text the String to convert to a Calendar object
- */
- public static Calendar getCalendarFromDateAndTime(String text)
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- if( text.indexOf(" ") != -1 )
- {
- String date = text.substring(0, text.indexOf(" "));
- int firstPoint = date.indexOf(".");
- int secondPoint = date.lastIndexOf(".");
- if( firstPoint != -1 && secondPoint != -1 && firstPoint !=
secondPoint )
- {
- int year = Integer.parseInt(date.substring(0, firstPoint));
- int month = Integer.parseInt(date.substring(firstPoint + 1,
secondPoint));
- int day = Integer.parseInt(date.substring(secondPoint + 1,
date.length()));
- cal.set(Calendar.YEAR, year);
- cal.set(Calendar.MONTH, month - 1);
- cal.set(Calendar.DATE, day - 1);
- logger.fine("TOF Date: " + year + "." + month + "." + day);
- }
- }
- return cal;
- }
-
- /**
- * Converts a String with format: YEAR.MONTH.DATE
- * to a Calendar object.
- * @param text the String to convert to a Calendar object
- */
- public static Calendar getCalendarFromDate(String date) throws
NumberFormatException
- {
- GregorianCalendar cal = new GregorianCalendar();
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- int firstPoint = date.indexOf(".");
- int secondPoint = date.lastIndexOf(".");
- if( firstPoint != -1 && secondPoint != -1 && firstPoint != secondPoint
)
- {
- int year = Integer.parseInt(date.substring(0, firstPoint));
- int month = Integer.parseInt(date.substring(firstPoint + 1,
secondPoint));
- int day = Integer.parseInt(date.substring(secondPoint + 1,
date.length()));
- cal.set(Calendar.YEAR, year);
- cal.set(Calendar.MONTH, month - 1);
- cal.set(Calendar.DATE, day - 1);
- }
- return cal;
- }
-
- public static String getDateOfCalendar(GregorianCalendar calDL)
- {
- String date = new
StringBuffer(11).append(calDL.get(Calendar.YEAR)).append( ".")
- .append(calDL.get(Calendar.MONTH) + 1).append( ".")
- .append(calDL.get(Calendar.DATE)).toString();
- return date;
- }
-
- /**
- * 2005.9.3 -> 2005.09.03 (for comparisions)
- */
- public static String buildExtendedDate(String date) {
- int firstPoint = date.indexOf(".");
- int secondPoint = date.lastIndexOf(".");
- if( firstPoint != -1 && secondPoint != -1 && firstPoint != secondPoint
)
- {
- int year = Integer.parseInt(date.substring(0, firstPoint));
- int month = Integer.parseInt(date.substring(firstPoint + 1,
secondPoint));
- int day = Integer.parseInt(date.substring(secondPoint + 1,
date.length()));
- StringBuffer sb = new StringBuffer(11);
- sb.append(year).append(".");
- if( month < 10 )
- sb.append("0");
- sb.append(month).append(".");
- if( day < 10 )
- sb.append("0");
- sb.append(day);
- return sb.toString();
- }
- return null;
- }
-
-}
+/*
+ DateFun.java / Frost
+ Copyright (C) 2001 Jan-Thomas Czornack <jantho at users.sourceforge.net>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+package frost;
+import java.util.*;
+import java.util.logging.Logger;
+
+
+public class DateFun
+{
+ private static Logger logger = Logger.getLogger(DateFun.class.getName());
+
+ /**
+ * Returns date
+ * @return Date as String yyyy.m.d in GMT without leading zeros
+ */
+ public static String getDate()
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ return new StringBuffer(11).append(cal.get(Calendar.YEAR)).append('.')
+ .append(cal.get(Calendar.MONTH) +
1).append('.').append(cal.get(Calendar.DATE)).toString();
+ }
+
+ /**
+ * Returns date -n days.
+ * @return Date as String yyyy.m.d in GMT without leading zeros
+ */
+ public static String getDate(int daysAgo) {
+ GregorianCalendar cal = new GregorianCalendar();
+ if( daysAgo != 0 ) {
+ cal.add(Calendar.DATE,-daysAgo);
+ }
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ return new StringBuffer(11).append(cal.get(Calendar.YEAR)).append('.')
+ .append(cal.get(Calendar.MONTH) +
1).append('.').append(cal.get(Calendar.DATE)).toString();
+ }
+
+ /**
+ * Returns date -n days.
+ * @return Date as String yyyy.mm.dd in GMT WITH leading zeros
+ */
+ public static String getExtendedDate(int daysAgo) {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ cal.add(Calendar.DATE,-daysAgo);
+ int year = cal.get(Calendar.YEAR);
+ int month = cal.get(Calendar.MONTH) + 1;
+ int day = cal.get(Calendar.DATE);
+ StringBuffer sb = new StringBuffer(11);
+ sb.append(year).append('.');
+ if( month < 10 )
+ sb.append('0');
+ sb.append(month).append('.');
+ if( day < 10 )
+ sb.append('0');
+ sb.append(day);
+ return sb.toString();
+ }
+
+ /**
+ * Returns time
+ * @return Time as String h:m:s in GMT without leading zeros
+ */
+ public static String getTime()
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ return new
StringBuffer(9).append(cal.get(Calendar.HOUR_OF_DAY)).append(':')
+
.append(cal.get(Calendar.MINUTE)).append(':').append(cal.get(Calendar.SECOND)).toString();
+ }
+
+ /**
+ * Returns date with leading zeroes
+ * @return Date as String yyyy.MM.dd in GMT with leading zeros
+ */
+ public static String getExtendedDate()
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ int year = cal.get(Calendar.YEAR);
+ int month = cal.get(Calendar.MONTH) + 1;
+ int day = cal.get(Calendar.DATE);
+ StringBuffer sb = new StringBuffer(11);
+ sb.append(year).append('.');
+ if( month < 10 )
+ sb.append('0');
+ sb.append(month).append('.');
+ if( day < 10 )
+ sb.append('0');
+ sb.append(day);
+ return sb.toString();
+ }
+ /**
+ * Returns date with leading zeroes
+ * @return Date as String yyyy.MM.dd in GMT with leading zeros
+ */
+ public static String getVisibleExtendedDate()
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ int year = cal.get(Calendar.YEAR);
+ int month = cal.get(Calendar.MONTH) + 1;
+ int day = cal.get(Calendar.DATE);
+ StringBuffer sb = new StringBuffer(11);
+ if( day < 10 )
+ sb.append('0');
+ sb.append(day).append('.');
+ if( month < 10 )
+ sb.append('0');
+ sb.append(month).append('.');
+ sb.append(year);
+ return sb.toString();
+ }
+
+ /**
+ * Returns time with leading zeroes
+ * @return Time as String h:mm:ss in GMT with leading zeros
+ */
+ public static String getExtendedTime()
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ int hour = cal.get(Calendar.HOUR_OF_DAY);
+ int minute = cal.get(Calendar.MINUTE);
+ int second = cal.get(Calendar.SECOND);
+ StringBuffer sb = new StringBuffer(9);
+ // if( hour<10 ) // commented out to keep old behaviour, see below
+ // sb.append('0');
+ sb.append(hour).append(':');
+ if( minute < 10 )
+ sb.append('0');
+ sb.append(minute).append(':');
+ if( second < 10 )
+ sb.append('0');
+ sb.append(second);
+ return sb.toString();
+ /*
+ String sHour = String.valueOf(hour);
+ String sMinute = String.valueOf(minute);
+ String sSecond = String.valueOf(second);
+ if (hour < 10)
+ sHour = "0" + sHour;
+ if (minute < 10)
+ sMinute = "0" + sMinute;
+ if (second < 10)
+ sSecond = "0" + sSecond;
+ return hour + ":" + sMinute +":" + sSecond; <-- bug or feature?
uses hour instead of sHour as prepared
+ */
+ }
+ /**
+ * Returns time with leading zeroes
+ * @return Time as String hh:mm:ss in GMT with leading zeros
+ *
+ * **** getExtendedDate() returns h:mm:ss, this returns the correct
hh:mm:ss
+ *
+ */
+ public static String getFullExtendedTime()
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ int hour = cal.get(Calendar.HOUR_OF_DAY);
+ int minute = cal.get(Calendar.MINUTE);
+ int second = cal.get(Calendar.SECOND);
+ StringBuffer sb = new StringBuffer(9);
+ if( hour<10 )
+ sb.append('0');
+ sb.append(hour).append(':');
+ if( minute < 10 )
+ sb.append('0');
+ sb.append(minute).append(':');
+ if( second < 10 )
+ sb.append('0');
+ sb.append(second);
+ return sb.toString();
+ }
+
+ /**
+ * Converts a String with format: DATE.MONTH.YEAR HOUR:MINUTE:SECONDGMT
+ * to a Calendar object.
+ * @param text the String to convert to a Calendar object
+ */
+ public static Calendar getCalendarFromDateAndTime(String text)
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ if( text.indexOf(' ') != -1 )
+ {
+ String date = text.substring(0, text.indexOf(' '));
+ int firstPoint = date.indexOf('.');
+ int secondPoint = date.lastIndexOf('.');
+ if( firstPoint != -1 && secondPoint != -1 && firstPoint !=
secondPoint )
+ {
+ int year = Integer.parseInt(date.substring(0, firstPoint));
+ int month = Integer.parseInt(date.substring(firstPoint + 1,
secondPoint));
+ int day = Integer.parseInt(date.substring(secondPoint + 1,
date.length()));
+ cal.set(Calendar.YEAR, year);
+ cal.set(Calendar.MONTH, month - 1);
+ cal.set(Calendar.DATE, day - 1);
+ logger.fine("TOF Date: " + year + "." + month + "." + day);
+ }
+ }
+ return cal;
+ }
+
+ /**
+ * Converts a String with format: YEAR.MONTH.DATE
+ * to a Calendar object.
+ * @param text the String to convert to a Calendar object
+ */
+ public static Calendar getCalendarFromDate(String date) throws
NumberFormatException
+ {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ int firstPoint = date.indexOf('.');
+ int secondPoint = date.lastIndexOf('.');
+ if( firstPoint != -1 && secondPoint != -1 && firstPoint != secondPoint
)
+ {
+ int year = Integer.parseInt(date.substring(0, firstPoint));
+ int month = Integer.parseInt(date.substring(firstPoint + 1,
secondPoint));
+ int day = Integer.parseInt(date.substring(secondPoint + 1,
date.length()));
+ cal.set(Calendar.YEAR, year);
+ cal.set(Calendar.MONTH, month - 1);
+ cal.set(Calendar.DATE, day - 1);
+ }
+ return cal;
+ }
+
+ public static String getDateOfCalendar(GregorianCalendar calDL)
+ {
+ String date = new
StringBuffer(11).append(calDL.get(Calendar.YEAR)).append('.')
+ .append(calDL.get(Calendar.MONTH) + 1).append('.')
+ .append(calDL.get(Calendar.DATE)).toString();
+ return date;
+ }
+
+ /**
+ * 2005.9.3 -> 2005.09.03 (for comparisions)
+ */
+ public static String buildExtendedDate(String date) {
+ int firstPoint = date.indexOf('.');
+ int secondPoint = date.lastIndexOf('.');
+ if( firstPoint != -1 && secondPoint != -1 && firstPoint != secondPoint
)
+ {
+ int year = Integer.parseInt(date.substring(0, firstPoint));
+ int month = Integer.parseInt(date.substring(firstPoint + 1,
secondPoint));
+ int day = Integer.parseInt(date.substring(secondPoint + 1,
date.length()));
+ StringBuffer sb = new StringBuffer(11);
+ sb.append(year).append('.');
+ if( month < 10 )
+ sb.append('0');
+ sb.append(month).append('.');
+ if( day < 10 )
+ sb.append('0');
+ sb.append(day);
+ return sb.toString();
+ }
+ return null;
+ }
+}