KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > forum > comics > DieselSweetiesFormatter


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 /**
27  * Special date formatter for diesel sweeties-style systems, i.e. numbered systems from 0 up instead of dates.
28  */

29 package net.killingar.forum.comics;
30
31 import java.util.Calendar JavaDoc;
32 import java.util.Date JavaDoc;
33
34 public class DieselSweetiesFormatter extends java.text.Format JavaDoc
35 {
36     protected int minNumberOfDigits = 3; // if start of diesel sweeties this is 2
37

38     public Object JavaDoc parseObject(String JavaDoc source, java.text.ParsePosition JavaDoc status)
39     {
40         return null;
41     }
42
43     public StringBuffer JavaDoc format(Object JavaDoc obj, StringBuffer JavaDoc toAppendTo, java.text.FieldPosition JavaDoc pos)
44     {
45         if (obj instanceof Date JavaDoc)
46             return toAppendTo.append(format((Date JavaDoc)obj));
47         else
48             throw new IllegalArgumentException JavaDoc();
49     }
50
51     public String JavaDoc adjustString(String JavaDoc s)
52     {
53         for (int i = s.length(); i < minNumberOfDigits; i++)
54             s = "0"+s;
55
56         return s;
57     }
58
59     public final String JavaDoc format(Date JavaDoc date)
60     {
61         Calendar JavaDoc tmpCal = Calendar.getInstance(), calendar = Calendar.getInstance();
62         int i = 0;
63         calendar.clear();
64         tmpCal.setTime(date);
65
66         while (calendar.get(Calendar.YEAR) < tmpCal.get(Calendar.YEAR))
67         {
68             calendar.add(Calendar.YEAR, 1);
69             calendar.add(Calendar.DATE, -1);
70             i += calendar.get(Calendar.DAY_OF_YEAR);
71             calendar.add(Calendar.DATE, 1);
72         }
73
74         return adjustString(Integer.toString(i+tmpCal.get(Calendar.DAY_OF_YEAR)));
75     }
76 }
77
Popular Tags