android 根据时间得到年龄,星座

这篇博客介绍了在Android中如何根据用户选择的日期计算出年龄和对应的星座,提供了详细的实现步骤和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    @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];
    }

点击选择日期,选择完毕就会有回显

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值