package com.ectrip.cyt.ui; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Toast; import com.ectrip.cyt.utils.DateUtils; import com.ectrip.cyt.utils.LogUtil; import com.ectrip.cyt.utils.StringUtils; import com.ectrip.trips.check.R; import com.squareup.timessquare.CalendarPickerView; import com.squareup.timessquare.CalendarPickerView.SelectionMode; public class CannerSelectedActivity extends BaseActivity implements OnClickListener { private CalendarPickerView calendar; private String mode; private final String TAG = "CannerSelectedActivity"; private int tag = 0; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.select_date_time); // mode = getIntent().getStringExtra("mode"); // tag = getIntent().getIntExtra("tag", 0); // Log.i(TAG, "===mode===" + mode); // titleName = getIntent().getStringExtra("titleName"); calendar = (CalendarPickerView) findViewById(R.id.calendar_view); findViewById(R.id.done_button).setOnClickListener(this); // initData(); mode = getIntent().getStringExtra("mode"); initDateForSingle(); findViewById(R.id.topBack).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } @SuppressWarnings("deprecation") private void returnData(int mode) { if (mode == 0) { ArrayList dates = (ArrayList) calendar .getSelectedDates(); ArrayList strList = new ArrayList(); for (int i = 0; i < dates.size(); i++) { String date = (dates.get(i).getMonth() + 1) + getString(R.string.month) + dates.get(i).getDate() + getString(R.string.day); String day = isWeekday(dates.get(i).getDay()); String year = (dates.get(i).getYear() + 1900 + "").substring(2, (dates.get(i).getYear() + 1900 + "").length()) + getString(R.string.year) + day; strList.add(year + ":" + date); } LogUtil.d("dates", "----strList---" + strList.size()); Intent intent = new Intent(); intent.putExtra("result", strList); setResult(6, intent); finish();// return; } if (mode == 1) { StringBuffer buffer = new StringBuffer(); Date dates = calendar.getSelectedDate(); String month; String date; if (dates.getDate() > 9) { date = dates.getDate() + ""; } else { date = "0" + dates.getDate(); } if ((dates.getMonth() + 1) > 9) { month = (dates.getMonth() + 1) + "-" + date + " "; } else { month = "0" + (dates.getMonth() + 1) + "-" + date + " "; } // String day = isWeekday(dates.getDay());// 星期几 String year = (dates.getYear() + 1900) + "-"; buffer.append(year).append(month); LogUtil.i(TAG, buffer.toString()); Intent intent = new Intent(); intent.putExtra("result", buffer.toString()); setResult(6, intent); finish();// return; } if (mode == 2) { ArrayList dates = (ArrayList) calendar .getSelectedDates(); ArrayList strList = new ArrayList(); for (int i = 0; i < dates.size(); i++) { String month = (dates.get(i).getMonth() + 1) + "-" + dates.get(i).getDate(); int day = dates.get(i).getDay(); String year = (dates.get(i).getYear() + 1900 + ""); strList.add(year + ":" + month + ":" + day); } LogUtil.d("dates", "----strList---" + strList.size()); Intent intent = new Intent(); intent.putExtra("result", strList); setResult(6, intent); finish();// return; } if (mode == 3) { StringBuffer buffer = new StringBuffer(); Date dates = calendar.getSelectedDate(); String month = (dates.getMonth() + 1) + getString(R.string.month) + dates.getDate() + getString(R.string.day); String day = isWeekday(dates.getDay());// 星期几 String year = (dates.getYear() + 1900) + getString(R.string.year2); buffer.append(year).append(month).append(" ").append(day); LogUtil.i(TAG, buffer.toString()); if (DateUtils.afterToday(buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString()); setResult(6, intent); finish();// return; } else if (DateUtils.isSameDay(StringUtils.getDateTimes(), buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString()); setResult(6, intent); finish();// return; } else { Toast.makeText(CannerSelectedActivity.this, getString(R.string.more_than_equal_today), Toast.LENGTH_SHORT).show(); } return; } if (mode == 4) { StringBuffer buffer = new StringBuffer(); Date dates = calendar.getSelectedDate(); String month = (dates.getMonth() + 1) + "-" + dates.getDate() + " "; String day = isWeekday(dates.getDay());// 星期几 String year = (dates.getYear() + 1900) + "-"; buffer.append(year).append(month).append(day); LogUtil.i(TAG, buffer.toString()); if (DateUtils.afterToday(buffer.toString()) || DateUtils.isSameDay(StringUtils.getDateTimes(), buffer.toString())) { Intent intent = new Intent(); intent.putExtra("tag", tag); if (tag == 1) { intent.putExtra("result", buffer.toString());// 入住 } else if (tag == -1) { intent.putExtra("result", buffer.toString());// 离店 } setResult(6, intent); finish();// } else { Toast.makeText(CannerSelectedActivity.this, getString(R.string.more_than_equal_today), Toast.LENGTH_SHORT).show(); } return; } if (mode == 5) { StringBuffer buffer = new StringBuffer(); Date dates = calendar.getSelectedDate(); String month; String date; if (dates.getDate() > 9) { date = dates.getDate() + ""; } else { date = "0" + dates.getDate(); } if ((dates.getMonth() + 1) > 9) { month = (dates.getMonth() + 1) + "-" + date + " "; } else { month = "0" + (dates.getMonth() + 1) + "-" + date + " "; } String day = isWeekday(dates.getDay());// 星期几 String year = (dates.getYear() + 1900) + "-"; buffer.append(year).append(month).append(day); LogUtil.i(TAG, buffer.toString()); if (getIntent().getIntExtra("param", 0) == 1) { if (DateUtils.afterToday(buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(6, intent); finish();// return; } else { Toast.makeText(CannerSelectedActivity.this, "日期必须大于今天", Toast.LENGTH_SHORT).show(); } return; } if (DateUtils.afterToday(buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(6, intent); finish();// return; } else if (DateUtils.isSameDay(StringUtils.getDateTimes(), buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(6, intent); finish();// return; } else { Toast.makeText(CannerSelectedActivity.this, getString(R.string.more_than_equal_today), Toast.LENGTH_SHORT).show(); } return; } else if (mode == 6) { StringBuffer buffer = new StringBuffer(); Date dates = calendar.getSelectedDate(); String month = (dates.getMonth() + 1) + "-" + dates.getDate() + " "; String day = isWeekday(dates.getDay());// 星期几 String year = (dates.getYear() + 1900) + "-"; buffer.append(year).append("0").append(month).append(day); LogUtil.i(TAG, buffer.toString()); if (tag == 0) {// 起点。 Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 intent.putExtra("tag", 0); setResult(6, intent); finish(); } else if (tag == 1) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 intent.putExtra("tag", 1); setResult(6, intent); finish(); } return; } else if (mode == 7) { StringBuffer buffer = new StringBuffer(); Date dates = calendar.getSelectedDate(); String month; String date; if (dates.getDate() > 9) { date = dates.getDate() + ""; } else { date = "0" + dates.getDate(); } if ((dates.getMonth() + 1) > 9) { month = (dates.getMonth() + 1) + "-" + date + " "; } else { month = "0" + (dates.getMonth() + 1) + "-" + date + " "; } String day = isWeekday(dates.getDay());// 星期几 String year = (dates.getYear() + 1900) + "-"; buffer.append(year).append(month).append(day); LogUtil.i(TAG, buffer.toString()); if (getIntent().getIntExtra("param", 0) == 1) { if (DateUtils.afterToday(buffer.toString())) { MToast(CannerSelectedActivity.this, "不能大于今天!", Toast.LENGTH_SHORT); return; } else { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(6, intent); finish();// } return; } if (DateUtils.afterToday(buffer.toString())) { MToast(CannerSelectedActivity.this, "不能大于今天!", Toast.LENGTH_SHORT); return; } else { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(6, intent); finish();// } return; } else if (mode == 8) { StringBuffer buffer = new StringBuffer(); Date dates = calendar.getSelectedDate(); String month; String date; if (dates.getDate() > 9) { date = dates.getDate() + ""; } else { date = "0" + dates.getDate(); } if ((dates.getMonth() + 1) > 9) { month = (dates.getMonth() + 1) + "-" + date + " "; } else { month = "0" + (dates.getMonth() + 1) + "-" + date + " "; } String day = isWeekday(dates.getDay());// 星期几 String year = (dates.getYear() + 1900) + "-"; buffer.append(year).append(month).append(day); LogUtil.i(TAG, buffer.toString()); if (getIntent().getIntExtra("param", 0) == 1) { if (DateUtils.afterToday(buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(7, intent); finish();// return; } else { Toast.makeText(CannerSelectedActivity.this, getString(R.string.more_than_today), Toast.LENGTH_SHORT).show(); } return; } if (DateUtils.afterToday(buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(7, intent); finish();// return; } else if (DateUtils.isSameDay(StringUtils.getDateTimes(), buffer.toString())) { Intent intent = new Intent(); intent.putExtra("result", buffer.toString());// 离店 setResult(7, intent); finish();// return; } else { Toast.makeText(CannerSelectedActivity.this, getString(R.string.more_than_equal_today), Toast.LENGTH_SHORT) .show(); } return; } } protected String isWeekday(int key) { String d = getString(R.string.week); switch (key) { case 1: d += getString(R.string.one); break; case 2: d += getString(R.string.two); break; case 3: d += getString(R.string.three); break; case 4: d += getString(R.string.four); break; case 5: d += getString(R.string.five); break; case 6: d += getString(R.string.six); break; case 7: d += getString(R.string.sunday); break; case 0: d += getString(R.string.sunday); break; } return d; } private void initDateForSingle() { final Calendar nextYear = Calendar.getInstance(); nextYear.add(Calendar.YEAR, 1); final Calendar lastYear = Calendar.getInstance(); lastYear.add(Calendar.YEAR, -1); calendar.init(lastYear.getTime(), nextYear.getTime()) // .inMode(SelectionMode.SINGLE) // .withSelectedDate(new Date()); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.done_button: returnData(Integer.parseInt(mode)); // MyApp.getInstance().btnBack(CannerSelectedActivity.this); break; } } }