It converts the time for the places specified.
import java.util.*; import java.text.*; import java.util.Calendar; import java.util.Hashtable; import java.util.SimpleTimeZone; import org.w3c.dom.Text; import java.net.URISyntaxException; import java.security.PublicKey; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.view.Window; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.style.StyleSpan; import android.view.View; import android.view.Window; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; public class TimeZone extends Activity { /** Called when the activity is first created. */ GMTtable g1 = new GMTtable(); TextView tv = null; ProgressDialogExample pd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // //////DATE//////// final Spinner date = (Spinner) findViewById(R.id.date); ArrayAdapter<CharSequence> date_adpt = ArrayAdapter.createFromResource( this, R.array.dts, android.R.layout.simple_spinner_item); date_adpt .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); date.setAdapter(date_adpt); // /MONTH/// final Spinner month = (Spinner) findViewById(R.id.month); ArrayAdapter<CharSequence> month_adpt = ArrayAdapter .createFromResource(this, R.array.month, android.R.layout.simple_spinner_item); month_adpt .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); month.setAdapter(month_adpt); // //YEAR///// final Spinner year = (Spinner) findViewById(R.id.year); ArrayAdapter<CharSequence> year_adpt = ArrayAdapter.createFromResource( this, R.array.year, android.R.layout.simple_spinner_item); year_adpt .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); year.setAdapter(year_adpt); // //////TO TIME ZONE SPINNER////// final Spinner totimzone = (Spinner) findViewById(R.id.totimezone); ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource( this, R.array.timezone, android.R.layout.simple_spinner_item); adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); totimzone.setAdapter(adapter1); // /////FROM TIME ZONE SPINNER///// final Spinner fromtimezone = (Spinner) findViewById(R.id.fromtimezone); ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource( this, R.array.timezone, android.R.layout.simple_spinner_item); adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); fromtimezone.setAdapter(adapter2); // ////////////////////////////////// // //////////////TIME/////////////////////// // ///HOUR SPINNER final Spinner hour = (Spinner) findViewById(R.id.hour); ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource( this, R.array.hrs, android.R.layout.simple_spinner_item); adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); hour.setAdapter(adapter3); // ///MINUTE SPINNER//// final Spinner minute = (Spinner) findViewById(R.id.minute); ArrayAdapter<CharSequence> adapter4 = ArrayAdapter.createFromResource( this, R.array.min, android.R.layout.simple_spinner_item); adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); minute.setAdapter(adapter4); // ////FORMAT SPINNER//// final Spinner format = (Spinner) findViewById(R.id.format); ArrayAdapter<CharSequence> adapter5 = ArrayAdapter.createFromResource( this, R.array.format, android.R.layout.simple_spinner_item); adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); format.setAdapter(adapter5); // / BUTTON/// final Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { int frm_tmz_pos = fromtimezone.getSelectedItemPosition(); int to_tmz_pos = totimzone.getSelectedItemPosition(); String to_time_str = (String) totimzone .getItemAtPosition(to_tmz_pos); String frm_time_str = (String) fromtimezone .getItemAtPosition(frm_tmz_pos); double to_val, frm_val; to_val = g1.getvalues(to_time_str); frm_val = g1.getvalues(frm_time_str); int format_pos = format.getSelectedItemPosition(); String format_val = (String) format .getItemAtPosition(format_pos); int day_pos = date.getSelectedItemPosition(); int month_pos = month.getSelectedItemPosition(); int year_pos = year.getSelectedItemPosition(); int day_val = Integer.parseInt((String) date .getItemAtPosition(day_pos)); // int month_val // =Integer.parseInt((String)month.getItemAtPosition(month_pos)); int year_val = Integer.parseInt((String) year .getItemAtPosition(year_pos)); int hrs_pos = hour.getSelectedItemPosition(); int min_pos = minute.getSelectedItemPosition(); int hrs_val = Integer.parseInt((String) hour .getItemAtPosition(hrs_pos)); int min_val = Integer.parseInt((String) minute .getItemAtPosition(min_pos)); double min_val1 = (int) min_val; min_val1 = (min_val / 60); double tot_time = hrs_val + min_val1; double diff = to_val - frm_val; double con_factor = (19800000 * diff) - 19800000; hrs_val = hrs_val + (int) diff; min_val = min_val + (int) ((diff - (int) diff) * 60); if (min_val >= 60) { min_val -= 60; hrs_val += 1; } else if (min_val < 0) { min_val += 60; hrs_val -= 1; } String month_val = (String) month.getItemAtPosition(month_pos); tv = (TextView) findViewById(R.id.error); int flag = 0; /* VALIDATION OF DAYS AND MONTH */ int leapyear_flag = 0; GregorianCalendar cal = new GregorianCalendar(); if (cal.isLeapYear(year_val)) { leapyear_flag = 1; System.out.println("leapyear_flag=" + leapyear_flag); } else leapyear_flag = 0; String error = ""; int errors = 0; if (((day_val == 31) && ((month_pos == 3) | (month_pos == 5) | (month_pos == 8) | (month_pos == 10))) | (((month_pos == 1) && ((leapyear_flag == 0) && (day_val > 28)) | ((leapyear_flag == 1) && (day_val > 29))))) { if (((month_pos == 1) && ((leapyear_flag == 0) && (day_val == 29)))) { final Intent myIntent = new Intent( android.content.Intent.ACTION_VIEW, Uri .parse("geo:38.899533,-77.036476")); startActivity(myIntent); tv = (TextView) findViewById(R.id.result); tv.setText(""); tv = (TextView) findViewById(R.id.error); error = "" + year_val + " IS NOT A LEAP YEAR"; tv.setText(error); } else { tv = (TextView) findViewById(R.id.result); tv.setText(""); tv = (TextView) findViewById(R.id.error); error = "" + month.getItemAtPosition(month_pos) + " CAN NOT HAVE " + day_val + " DAYS"; tv.setText(error); System.out .print("EITHER OF THE VALUES IN MONTH OR DAY IS WRONG"); } } else { switch (format_pos) { case 0: if (hrs_val > 12) { hrs_val = hrs_val - 12; format_val = "PM"; } else if (hrs_val < 0) { if (day_val == 1) { if ((day_val == 1) && ((month_pos - 1 == 3) | (month_pos - 1 == 5) | (month_pos - 1 == 8) | (month_pos - 1 == 10))) { day_val = 30; month_pos -= 1; hrs_val += 12; format_val = "PM"; } else if (((day_val == 1) && ((month_pos - 1 == 0) | (month_pos - 1 == 2) | (month_pos - 1 == 4) | (month_pos - 1 == 6) | (month_pos - 1 == 7) | (month_pos - 1 == 9)))) { day_val = 31; month_pos -= 1; hrs_val += 12; format_val = "PM"; } else if ((day_val == 1) && (month_pos - 1 < 0)) { year_val -= 1; day_val = 31; hrs_val += 12; month_pos = 11; format_val = "PM"; } else if ((day_val == 1) && (month_pos - 1 == 1)) { if (leapyear_flag == 1) { day_val = 29; hrs_val += 12; month_pos -= 1; format_val = "PM"; } else { day_val = 28; hrs_val += 12; month_pos -= 1; format_val = "PM"; } } } else { day_val -= 1; hrs_val += 12; format_val = "PM"; } } break; case 1: if (hrs_val > 12) { if ((flag != 1) && (day_val == 30) && ((month_pos == 3) | (month_pos == 5) | (month_pos == 8) | (month_pos == 10) | (month_pos == 7))) { format_val = "AM"; day_val = 1; month_pos += 1; flag = 1; } if ((flag != 1) && ((month_pos == 3) | (month_pos == 5) | (month_pos == 8) | (month_pos == 10) | (month_pos == 7))) { hrs_val = hrs_val - 12; day_val += 1; flag = 1; } if ((flag != 1) && (day_val == 31) && ((month_pos == 0) | (month_pos == 2) | (month_pos == 4) | (month_pos == 6) | (month_pos == 7) | (month_pos == 9) | (month_pos == 11))) { hrs_val = hrs_val - 12; format_val = "AM"; day_val = 1; flag = 1; if (month_pos == 11) { month_pos = 0; year_val += 1; } else month_pos += 1; } else if ((month_pos == 0) | (month_pos == 2) | (month_pos == 4) | (month_pos == 6) | (month_pos == 7) | (month_pos == 9) | (month_pos == 11)) { hrs_val = hrs_val - 12; format_val = "AM"; } if ((flag != 1) && (month_pos == 1) && (((day_val == 28) && (leapyear_flag == 0)) | ((day_val == 29) && (leapyear_flag == 1)))) { hrs_val = hrs_val - 12; format_val = "AM"; day_val = 1; month_pos += 1; flag = 1; } else if (flag != 1) { day_val += 1; format_val = "AM"; } } else if (hrs_val < 0) { } break; } month_val = (String) month.getItemAtPosition(month_pos); String dates1 = frm_time_str + " WAS " + diff + " HOURS BEHIND OF " + to_time_str + "n" + year_val + "-" + month_val + "-" + day_val + " " + hrs_val + ":" + min_val + ":" + "00" + format_val; tv = (TextView) findViewById(R.id.error); tv.setText(""); tv = (TextView) findViewById(R.id.result); tv.setText(dates1); } } }); } }