Ejemplo n.º 1
0
        //# __________ PROTOCOL :: MISC __________ #//
        /**
         * Determine the difference between two dates.  The resultant
         * array contains three elements { years, months, days }.
         */
        public static int[] Difference(JwDate fromDate, JwDate toDate)
        {
            if ( fromDate.GetOrdinal() >= toDate.GetOrdinal() )
                return new int[]
                {
                    0, 0, 0
                };

            int fromYear   = fromDate.GetYear();
            int fromMonth  = fromDate.GetMonth();
            int fromDay    = fromDate.GetDay();
            int toYear    = toDate.GetYear();
            int toMonth   = toDate.GetMonth();
            int toDay     = toDate.GetDay();
            int diffYears  = toYear - fromYear;
            int diffMonths = toMonth - fromMonth;
            int diffDays   = toDay - fromDay;

            if ( diffDays < 0 )
            {
                diffDays += GetDaysInYearMonth(fromYear, fromMonth);
                diffMonths--;
            }
            if ( diffMonths < 0 )
            {
                diffMonths += 12;
                diffYears--;
            }
            if ( fromYear < 0 && toYear > 0 ) diffYears--;

            if ( diffYears < 0 )
            {
                diffYears = 0;
                diffMonths = 0;
                diffDays = 0;
            }
            return new int[] {diffYears, diffMonths, diffDays};
        }
Ejemplo n.º 2
0
        //# __________ PROTOCOL :: FORMAT __________ #//
        /**
         * I provide a very simple, and non-optimized, facility for formatting
         * dates in a variety of formats.  Valid format codes are:
         * {d}    : day of month (1-31)
         * {dd}   : day of month (01-31)
         * {ddd}  : weekday abbreviation (Sun-Sat)
         * {dddd} : weekday name (Sunday-Saturday)
         * {m}    : month (1-12)
         * {mm}   : month (01-12)
         * {mmm}  : month abbreviation (Jan-Dec)
         * {mmmm} : month name (January-December)
         * {yy}   : year (00-99)
         * {yyyy} : year (1800-9999)
         */
        public static String Format(JwDate d, String format)
        {
            String s = format;
            s = JwUtility.ReplaceAll(s, "{mmmm}",    JwDateUtility.GetMonthName(d.GetMonth()));
            s = JwUtility.ReplaceAll(s, "{mmm}",     JwDateUtility.GetMonthAbbreviation(d.GetMonth()));
            s = JwUtility.ReplaceAll(s, "{mm}",      Pad2(d.GetMonth()));
            s = JwUtility.ReplaceAll(s, "{m}",       d.GetMonth() + "");

            s = JwUtility.ReplaceAll(s, "{dddd}",    JwDateUtility.GetDayOfWeekName(d.GetDayOfWeek()));
            s = JwUtility.ReplaceAll(s, "{ddd}",     JwDateUtility.GetDayOfWeekAbbreviation(d.GetDayOfWeek()));
            s = JwUtility.ReplaceAll(s, "{dd}",      Pad2(d.GetDay()));
            s = JwUtility.ReplaceAll(s, "{d}",       d.GetDay() + "");

            s = JwUtility.ReplaceAll(s, "{yyyy}",    d.GetYear() + "");
            s = JwUtility.ReplaceAll(s, "{yy}",      Pad2(GetShortYear(d)));
            return s;
        }
Ejemplo n.º 3
0
 /**
  * Format a date, e.g.: Jan 31, 1985 -> 19850131.
  */
 public static String Format_yyyymmdd(JwDate d)
 {
     return "" +
         Pad4(d.GetYear()) +
         Pad2(d.GetMonth()) +
         Pad2(d.GetDay());
 }
Ejemplo n.º 4
0
 /**
  * Format a date, e.g.: Jan 31, 1985 -> 1/31/1985
  */
 public static String Format_m_dd_yy(JwDate d)
 {
     return "" +
         d.GetMonth() +
         JwTimeConstants.DATE_SEPARATOR +
         Pad2(d.GetDay()) +
         JwTimeConstants.DATE_SEPARATOR +
         Pad2(GetShortYear(d));
 }