Using A Timer...

Hello, Ive to use a Timer to indicate on System.out.println when two deadlines (to be inputted by user) have been reached. Ive been reading about it for the past hour but ideas would be appreciated, heres my code...

import java.io.*;

import java.net.*;

import java.text.DecimalFormat;

import java.util.*;

publicclass BiddingServer

{

privatestatic ServerSocket servSocket;

privatestaticfinalint PORT = 1234;

publicstatic Scanner keyboard =new Scanner(System.in);

publicstatic String itemDescripOne ="TV", itemCodeOne ="123";

publicstatic String itemDescripTwo ="Toaster", itemCodeTwo ="321";

publicstaticfloat itemPriceOne = 100, itemPriceTwo = 200;

publicstatic Calendar deadlineOne;

publicstatic Calendar deadlineTwo;

publicstaticint clientCount =0;

publicstaticvoid main(String[] args)throws IOException

{

{

Calendar start = Calendar.getInstance();

int date = start.get(Calendar.DATE);

int month = start.get(Calendar.MONTH);

int year = start.get(Calendar.YEAR);

Timer timer;

// what follows is the entry of the deadlines

// that need to be indicated when finished

System.out.printf("\nEnter First Item's finishing bid time");

String timeString = BiddingServer.keyboard.nextLine();

String hourString = timeString.substring(0,2);

int hour = Integer.parseInt(hourString);

String minString = timeString.substring(3,5);

int minute = Integer.parseInt(minString);

BiddingServer.deadlineOne = Calendar.getInstance();//Set up Calendar object to hold deadline time...

BiddingServer.deadlineOne.set(year,month,date,hour,minute,0);

System.out.println("\nEnter Second Item's finishing bid time:\n");

String timeString1 = BiddingServer.keyboard.nextLine();

String hourString1 = timeString1.substring(0,2);

int hour1 = Integer.parseInt(hourString1);

String minString1 = timeString1.substring(3,5);

int minute1 = Integer.parseInt(minString1);

BiddingServer.deadlineTwo = Calendar.getInstance();//Set up Calendar object to hold deadline time...

BiddingServer.deadlineTwo.set(year,month,date,hour1,minute1,0);

}

System.out.println("Opening port...\n");

try

{

servSocket =new ServerSocket(PORT);

}

catch (IOException e)

{

System.out.println("\nUnable to set up port!");

System.exit(1);

}

do

{

Socket client = servSocket.accept();

clientCount++;

//Wait for client.

System.out.println("\nNew bidder accepted.\n");

ClientHandler handler =new ClientHandler(client, clientCount);

handler.start();

}while (true);

}

}

class ClientHandlerextends Thread

{

private Socket client;

private Scanner input, keyboard;

private PrintWriter output;

int clientNumber;

public ClientHandler(Socket socket,int count)throws IOException, NumberFormatException

{

client = socket;

clientNumber = count;

keyboard =new Scanner(System.in);

input =new Scanner(client.getInputStream());

output =new PrintWriter(client.getOutputStream(),true);

}

publicvoid run()

{

String userInput;

float price, priceTwo ;

output.println(BiddingServer.itemDescripOne);

output.println(BiddingServer.itemCodeOne);

output.println(getDateTime(BiddingServer.deadlineOne));

output.println(BiddingServer.itemDescripTwo);

output.println(BiddingServer.itemCodeTwo);

output.println(getDateTime(BiddingServer.deadlineTwo));

do

{

userInput = input.nextLine();

Calendar now = Calendar.getInstance();

if (userInput.startsWith("number of bidders"))

{

System.out.println("Number of Bidders Online " + clientNumber);

output.println(clientNumber);

}

if ((userInput.startsWith(BiddingServer.itemCodeOne)) && (userInput.endsWith("Status")) && (now.before(BiddingServer.deadlineOne)))

{

System.out.println("item price one");

output.println(BiddingServer.itemPriceOne);

}

elseif ((userInput.startsWith(BiddingServer.itemCodeOne)) && (userInput.endsWith("Status")) && (now.after(BiddingServer.deadlineOne)))

{

System.out.println("-1, bidding for item ended");

output.println("-1");

}

elseif (userInput.startsWith(BiddingServer.itemCodeOne))

{

price = Float.parseFloat(userInput.substring(BiddingServer.itemCodeOne.length() +1));

if ((price > BiddingServer.itemPriceOne) && (now.before(BiddingServer.deadlineOne)))

{

//bidForItem();

System.out.println("Bid Accepted");

output.println("Bid Accepted");

BiddingServer.itemPriceOne = price;

}elseif (now.after(BiddingServer.deadlineOne))

{

System.out.println("Late Bid");

output.println("Late Bid");

}elseif ((price <= BiddingServer.itemPriceOne) && (now.before(BiddingServer.deadlineOne)))

{

System.out.println("Low Bid");

output.println("Low Bid");

}

}

if ((userInput.startsWith(BiddingServer.itemCodeTwo)) && (userInput.endsWith("Status"))&& (now.before(BiddingServer.deadlineTwo)))

{

System.out.println("item price Two");

output.println(BiddingServer.itemPriceTwo);

}

elseif ((userInput.startsWith(BiddingServer.itemCodeTwo)) && (userInput.endsWith("Status")) && (now.after(BiddingServer.deadlineTwo)))

{

System.out.println("-1, bidding for item ended");

output.println("-1");

}

elseif (userInput.startsWith(BiddingServer.itemCodeTwo))

{

priceTwo = Float.parseFloat(userInput.substring(BiddingServer.itemCodeTwo.length() +1));

if ((priceTwo > BiddingServer.itemPriceTwo) && (now.before(BiddingServer.deadlineTwo)))

{

System.out.println("Bid Accepted");

output.println("Bid Accepted");

BiddingServer.itemPriceTwo = priceTwo;

}

elseif (now.after(BiddingServer.deadlineTwo))

{

System.out.println("Late Bid");

output.println("Late Bid");

}

elseif ((priceTwo <= BiddingServer.itemPriceTwo) && (now.before(BiddingServer.deadlineTwo)))

{

System.out.println("Low Bid");

output.println("Low Bid");

}

}

}while (true);

}

public String getDateTime(Calendar dateTime)

{

//Create DecimalFormat object to ensure 2 dec places...

DecimalFormat decFormat =new DecimalFormat("00");

//Now extract hours and minutes, each with 2 digits

//(i.e., with leading zeroes if needed)...

String hour2Digits =

decFormat.format(dateTime.get(Calendar.HOUR_OF_DAY));

String min2Digits =

decFormat.format(dateTime.get(Calendar.MINUTE));

return(dateTime.get(Calendar.DATE) +"/"

+ (dateTime.get(Calendar.MONTH)+1) +"/"

+ dateTime.get(Calendar.YEAR) +" "

+ hour2Digits +":" + min2Digits);

}

}

[12663 byte] By [Karen_a] at [2007-11-26 20:50:13]
# 1

Help please! Im stuck for ideas! should i use something like class Deadlines extends Thread

... or is it just Timer timer = new Timer();

and then go into a method such as timer.scheduleAtFixedRate

im lost as to which method to use

thanks

Karen_a at 2007-7-10 2:14:39 > top of Java-index,Java Essentials,Java Programming...
# 2
help is scarce huh
Karen_a at 2007-7-10 2:14:39 > top of Java-index,Java Essentials,Java Programming...
# 3

You waited 20 minutes for a response, then you waited 10 more minutes.

I purposely ignore people who feel they are entitled to an answer with a few minutes of posting.

Questions will be answered when someone who reads the question knows the answer and not before.

If you want to learn how to use Timers, then write a 10 line program and experiment. We don't want to read through your code which has nothing to do with a Timer

camickra at 2007-7-10 2:14:39 > top of Java-index,Java Essentials,Java Programming...