package com.pwp.activity; import android.app.Activity; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.app.DatePickerDialog.OnDateSetListener; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.DatePicker; import android.widget.TextView; import com.pwp.borderText.BorderTextView; import com.pwp.calendar.LunarCalendar; /** * 日期转换 * * @author jack_peng * */ public class MyCalendarConvertView extends Activity { private LunarCalendar lc = null; private BorderTextView convertDate = null; private BorderTextView convertBT = null; private TextView lunarDate = null; private int year_c; private int month_c; private int day_c; public MyCalendarConvertView() { lc = new LunarCalendar(); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.convert); convertDate = (BorderTextView) findViewById(R.id.convertDate); convertBT = (BorderTextView) findViewById(R.id.convert); lunarDate = (TextView) findViewById(R.id.convertResult); Intent intent = getIntent(); int[] date = intent.getIntArrayExtra("date"); year_c = date[0]; month_c = date[1]; day_c = date[2]; convertDate.setText(year_c + "年" + month_c + "月" + day_c); convertDate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new DatePickerDialog(MyCalendarConvertView.this, new OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { if (year < 1901 || year > 2049) { // 不在查询范围内 new AlertDialog.Builder( MyCalendarConvertView.this) .setTitle("错误日期") .setMessage( "跳转日期范围(1901/1/1-2049/12/31)") .setPositiveButton("确认", null) .show(); } else { year_c = year; month_c = monthOfYear + 1; day_c = dayOfMonth; convertDate.setText(year_c + "年" + month_c + "月" + day_c); } } }, year_c, month_c - 1, day_c).show(); } }); convertBT.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String lunarDay = getLunarDay(year_c, month_c, day_c); String lunarYear = String.valueOf(lc.getYear()); String lunarMonth = lc.getLunarMonth(); lunarDate.setText(lunarYear + "年" + lunarMonth + lunarDay); } }); } /** * 根据日期的年月日返回阴历日期 * * @param year * @param month * @param day * @return */ public String getLunarDay(int year, int month, int day) { String lunarDay = lc.getLunarDate(year, month, day, true); // {由于在取得阳历对应的阴历日期时,如果阳历日期对应的阴历日期为"初一",就被设置成了月份(如:四月,五月。。。等)},所以在此就要判断得到的阴历日期是否为月份,如果是月份就设置为"初一" if (lunarDay.substring(1, 2).equals("月")) { lunarDay = "初一"; } return lunarDay; } }