@Bind(R.id.tv_chose) TextView tvChose; @Bind(R.id.tv_old) TextView tvOld; @Bind(R.id.tv_constellation) TextView tvConstellation; private int year; private int month; private int day; Calendar calendar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); calendar = Calendar.getInstance(); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH); day = calendar.get(Calendar.DAY_OF_MONTH); } @OnClick(R.id.tv_chose) public void onClick() { new DatePickerDialog(MainActivity.this, AlertDialog.THEME_HOLO_LIGHT, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int years, int monthOfYear, int dayOfMonth) { tvChose.setText(years + "-" + (monthOfYear + 1) + "-" + dayOfMonth); Calendar mycalendar = Calendar.getInstance();//获取现在时间 String nowyear = String.valueOf(mycalendar.get(Calendar.YEAR));//获取年份 // 用文本框输入年龄 int age = Integer.parseInt(nowyear); int birth = age - years; tvOld.setText(birth + "岁"); getAstro(monthOfYear + 1, dayOfMonth); // String monthStr = monthOfYear+1>=10?monthOfYear+1+"":"0"+(monthOfYear+1); //获得更改时间后的数据 // getlist(years + "-" + monthStr + "-" + dayOfMonth); } }, year, month, day).show(); } private String getAstro(int month, int day) { String[] astro = new String[]{"摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座"}; int[] arr = new int[]{20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22};// 两个星座分割日 int index = month; // 所查询日期在分割日之前,索引-1,否则不变 if (day < arr[month - 1]) { index = index - 1; } tvConstellation.setText(astro[index]); // 返回索引指向的星座string return astro[index]; }
点击选择日期,选择完毕就会有回显
这篇博客介绍了在Android中如何根据用户选择的日期计算出年龄和对应的星座,提供了详细的实现步骤和代码示例。
3277

被折叠的 条评论
为什么被折叠?



