/* Today 2000 Applet (c) 0 w 2000 by Craig Statchuk, No Writes Reserved */ import java.awt.*; import java.applet.*; import java.util.Date; public class today2000 extends Applet { // --- Applet Init --- public void init() { super.init(); //{{INIT_CONTROLS setLayout(null); addNotify(); resize(362,281); setBackground(java.awt.Color.white); setSize(362,281); month = new java.awt.TextField(11); month.reshape(30,71,91,25); month.setFont(new Font("Helvetica", Font.PLAIN, 12)); month.setBounds(30,71,91,25); add(month); day = new java.awt.TextField(5); day.reshape(160,71,42,25); day.setFont(new Font("Helvetica", Font.PLAIN, 12)); day.setBounds(160,71,42,25); add(day); year = new java.awt.TextField(6); year.reshape(240,72,56,24); year.setFont(new Font("Helvetica", Font.PLAIN, 12)); year.setBounds(240,72,56,24); text.setText("is "); text.setAlignment(java.awt.Label.CENTER); add(year); text = new java.awt.Label("is ",Label.CENTER); text.reshape(156,108,33,19); text.setFont(new Font("Helvetica", Font.BOLD, 16)); text.setBounds(156,108,33,19); today.setText("0 W 2000"); today.setAlignment(java.awt.Label.CENTER); add(text); today = new java.awt.Label("0 W 2000",Label.CENTER); today.reshape(48,132,266,45); today.setFont(new Font("Helvetica", Font.BOLD, 36)); today.setBounds(48,132,266,45); text1.setText("What Day is it Today?"); text1.setAlignment(java.awt.Label.CENTER); today.setForeground(java.awt.Color.red); add(today); text1 = new java.awt.Label("What Day is it Today?",Label.CENTER); text1.reshape(72,24,224,26); text1.setFont(new Font("Helvetica", Font.PLAIN, 18)); text1.setBounds(72,24,224,26); caption.setText("That\'s 0 days since we were "); caption.setAlignment(java.awt.Label.CENTER); text1.setForeground(java.awt.Color.blue); add(text1); caption = new java.awt.Label("That's 0 days since we were ",Label.CENTER); caption.reshape(24,192,315,22); caption.setFont(new Font("Dialog", Font.ITALIC, 16)); caption.setBounds(24,192,315,22); caption1.setText("blessed by Windows 2000"); caption1.setAlignment(java.awt.Label.CENTER); add(caption); caption1 = new java.awt.Label("blessed by Windows 2000",Label.CENTER); caption1.reshape(24,216,322,22); caption1.setFont(new Font("Dialog", Font.ITALIC, 16)); caption1.setBounds(24,216,322,22); YearMinus.setLabel("-"); add(caption1); YearMinus = new java.awt.Button("-"); YearMinus.reshape(300,84,16,16); add(YearMinus); YearMinus.setBounds(300,84,16,16); YearPlus.setLabel("+"); YearPlus = new java.awt.Button("+"); YearPlus.reshape(300,68,16,16); add(YearPlus); YearPlus.setBounds(300,68,16,16); DayMinus.setLabel("-"); DayMinus = new java.awt.Button("-"); DayMinus.reshape(204,84,16,16); add(DayMinus); DayMinus.setBounds(204,84,16,16); DayPlus.setLabel("+"); DayPlus = new java.awt.Button("+"); DayPlus.reshape(204,68,16,16); add(DayPlus); DayPlus.setBounds(204,68,16,16); MonthMinus.setLabel("-"); MonthMinus = new java.awt.Button("-"); MonthMinus.reshape(124,84,16,16); add(MonthMinus); MonthMinus.setBounds(124,84,16,16); MonthPlus.setLabel("+"); MonthPlus = new java.awt.Button("+"); MonthPlus.reshape(124,68,16,16); add(MonthPlus); MonthPlus.setBounds(124,68,16,16); //}} // Get today's date Date when = new Date(); month.setEditable(false); month.setText(months[when.getMonth()]); day.setEditable(false); Integer n = new Integer(when.getDate()); day.setText(n.toString()); year.setEditable(false); n = new Integer(when.getYear() + 1900); year.setText(n.toString()); calculateToday(); } // --- Class Methods --- public int getMonthIndex(String s) { int i; for (i=0; i<12; i++) { if (s.compareTo(months[i]) == 0) return i; } return 0; } public void calculateToday() { int nBaseDay = 48; int nBaseYear = 2000; int nm = getMonthIndex(month.getText()); int nd = Integer.parseInt(day.getText()); int ny = Integer.parseInt(year.getText()); // Get day in this year int yday = 0; int i; for (i=0; i 0) { // extra day for each leap year for (yy=nBaseYear; yy= 2) dayCount++; tday = Integer.toString(dayCount); today.setText(tday + " W 2000"); caption.setText("That's " + tday + " days since we were"); } else if (dayCount < 0) { // extra day for each leap year for (yy=nBaseYear; yy>ny; yy--) { if ((yy % 4) == 0 ) dayCount--; } // extra day for this year too if (yy != nBaseYear && (yy % 4) == 0 && nm < 2) dayCount--; tday = Integer.toString(dayCount*(-1)); today.setText(tday + " BW 2000"); caption.setText("That's " + tday + " days until we'll be"); } else { // Today is the big day! today.setText("0 W 2000"); caption.setText("WOW! Today we are"); } } // --- Event Handlers --- public boolean handleEvent(Event event) { if (event.target == YearMinus && event.id == Event.ACTION_EVENT) { DecrementYear(event); return true; } else if (event.target == YearPlus && event.id == Event.ACTION_EVENT) { scrollLineUpYear(event); return true; } else if (event.target == DayMinus && event.id == Event.ACTION_EVENT) { DecrementDay(event); return true; } else if (event.target == DayPlus && event.id == Event.ACTION_EVENT) { scrollLineUpDay(event); return true; } else if (event.target == MonthMinus && event.id == Event.ACTION_EVENT) { DecrementMonth(event); return true; } else if (event.target == MonthPlus && event.id == Event.ACTION_EVENT) { scrollLineUpMonth(event); return true; } return super.handleEvent(event); } //{{DECLARE_CONTROLS java.awt.TextField month = new java.awt.TextField(11); java.awt.TextField day = new java.awt.TextField(5); java.awt.TextField year = new java.awt.TextField(6); java.awt.Label text = new java.awt.Label(); java.awt.Label today = new java.awt.Label(); java.awt.Label text1 = new java.awt.Label(); java.awt.Label caption = new java.awt.Label(); java.awt.Label caption1 = new java.awt.Label(); java.awt.Button YearMinus = new java.awt.Button(); java.awt.Button YearPlus = new java.awt.Button(); java.awt.Button DayMinus = new java.awt.Button(); java.awt.Button DayPlus = new java.awt.Button(); java.awt.Button MonthMinus = new java.awt.Button(); java.awt.Button MonthPlus = new java.awt.Button(); //}} public void DecrementMonth(Event ev) { int n = getMonthIndex(month.getText()); n--; if (n > 11 || n < 0) n = 11; month.setText(months[n]); calculateToday(); } public void scrollLineUpMonth(Event ev) { int n = getMonthIndex(month.getText()); n++; if (n > 11 || n < 0) n = 0; month.setText(months[n]); calculateToday(); } public void DecrementDay(Event ev) { int n = Integer.parseInt(day.getText()); n--; if (n > 31 || n < 1) n = 31; day.setText(Integer.toString(n)); calculateToday(); } public void scrollLineUpDay(Event ev) { int n = Integer.parseInt(day.getText()); n++; if (n > 31 || n < 1) n = 1; day.setText(Integer.toString(n)); calculateToday(); } public void DecrementYear(Event ev) { int n = Integer.parseInt(year.getText()); n--; if (n < 1900 || n > 9999) n = 1900; year.setText(Integer.toString(n)); calculateToday(); } public void scrollLineUpYear(Event ev) { int n = Integer.parseInt(year.getText()); n++; if (n < 1900 || n > 9999) n = 9999; year.setText(Integer.toString(n)); calculateToday(); } // --- Class globals --- String months[] = {"January","Febuary","March","April","May","June","July","August","September","October","November","December"}; int mdays[] = {31,28,31,30,31,30,31,31,30,31,30,31}; }