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);
}
}
});
}
}

