Java Snippet

Date Projections Applet

Ever wanted to know the date from given criteria, e.g the 1st Sunday in December 2003.

Try it here.

If you have difficulty loading the applet, click the links to vb or vbscript, to try the scripting version.

Your browser does Not support Java Applets.

Click to see versions in    vb     vbscript    java/swing

Java Code

This applet code does not use java/swing (it's a bit rough, but it works)

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.util.Calendar;
import java.text.SimpleDateFormat;
 
public class DateProjectionsAppletAWT extends Applet implements ActionListener
{
  String weeks[] = {"1st","2nd","3rd","4th","Last"};
  String days[] = {"Sunday","Monday","Tuesday",
                         "Wednesday","Thursday","Friday","Saturday"};
  String months[] = {"January","February","March","April",
  "May","June","July","August","September","October","November","December"};
  String years[] =  {"2000","2001","2002","2003","2004",
                             "2005","2006","2007","2008","2009","2010","2011"};
  List lstWeek = new List(12,false);
  List lstDay = new List(12,false);
  List lstMonth = new List(12,false);
  List lstYear = new List(12,false);
  Label selection = new Label("Projected date is:   00-00-0000");
  Button btnGo = new Button("Project Date");
  Calendar cal = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy");
 
  public void init()
  {
    Panel frame = new Panel();
    frame.setLayout(new BorderLayout());
    Panel upper = new Panel(new FlowLayout());
    btnGo.addActionListener(this);
    for(int i = 0; i < 12; i++)
    {
      if(i<5) lstWeek.add(weeks[i]);
      if(i<7) lstDay.add(days[i]);
      lstMonth.add(months[i]);
      lstYear.add(years[i]);
    }
    upper.add(lstWeek);
    upper.add(lstDay);
    upper.add(lstMonth);
    upper.add(lstYear);
    Panel lower = new Panel();
    lower.setSize(new Dimension(300,40));
    lower.add(btnGo);
    lower.add(selection);
    frame.add(upper,BorderLayout.NORTH);
    frame.add(lower,BorderLayout.SOUTH);
    add(frame);
  }
 
  public void actionPerformed(ActionEvent ae)
  {
    int wk = 1 + lstWeek.getSelectedIndex();
    int dy = 1 + lstDay.getSelectedIndex();
    int mth = lstMonth.getSelectedIndex();
    int yr = 2000 + lstYear.getSelectedIndex();
    if(wk==0 || dy==0 || mth==-1 || yr==1999)
    {
      selection.setText("details missing");
    }
    else
    {
      if(wk == 5)
      {
        mth++;
        wk = 0;
      }
      cal.set(yr,mth,1);
      if(cal.get(cal.DAY_OF_WEEK) <= dy) wk--;
      cal.add(cal.DATE,-(cal.get(cal.DAY_OF_WEEK)-dy)+(7*wk));
      selection.setText("Projected date is:   " + sdf.format(cal.getTime()));
    }
  }
}

back    top    main page    vb snippets page      java snippets page     vbscript snippets page   email    Page last modified