生日剩余天数计算

这是一个关于Android生日记录的示例项目,包括添加、删除功能。项目中详细讲解了生日Activity的实现,以及如何在birthdayAdapter和XML布局文件中应用visibility属性。
摘要由CSDN通过智能技术生成

Birthday.class

package com.example.sendmsg;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;

public class Birthday {

    private Context context;
    private Bitmap personIcon;
    private String name;
    private String datas;
    private String phone_number;
    private String day;
    private long days = 0;


    public Bitmap getPersonIcon() {
        return personIcon;
    }


    public void setPersonIcon(Bitmap personIcon) {
        this.personIcon = personIcon;
    }


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    public String getDatas() {
        return datas;
    }


    public void setDatas(String datas) {
        this.datas = datas;
    }


    public String getPhone_number() {
        return phone_number;
    }


    public void setPhone_number(String phone_number) {
        this.phone_number = phone_number;
    }


    public String getDay() {
        return day;
    }


    public void setDay(String day) {
        this.day = day;
    }

    //剩余天数计算:
    public String getBirthday(String birthday) {
            //String birthday = "2013-03-18";

            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            Calendar cal = Calendar.getInstance();
            int yearNow = cal.get(Calendar.YEAR);// 获得当前年份
            try {
                Log.i("Birthday_time", formatter.parse(birthday) + "");
                cal.setTime(formatter.parse(birthday));
            } catch (Exception e) {
                e.printStackTrace();
            }
            int birthyear = cal.get(Calendar.YEAR);
            Log.i("Birthday_year", birthyear + "");
            while (birthyear < yearNow) {
                cal.set(Calendar.YEAR, cal.get(Calendar.YEAR) + 1);
                birthyear = cal.get(Calendar.YEAR);
                Log.i("Birthday_year++", birthyear + "");
            }
            Date ed = new Date();
            Log.i("Date_ed", ed + "");
            Date sd = cal.getTime();
            Log.i("Date_sd", ed + "");
            days = 0;
            if ((ed.getTime() - sd.getTime()) / (3600 * 24 * 1000) < 0) {
  //>
                days = -((ed.getTime() - sd.getTime()) / (3600 * 24 * 1000)) + 1;
                System.out.println("距离你生日还有" + days + "天");
            } else {
                cal.set(Calendar.YEAR, cal.get(Calendar.YEAR) + 1);
                sd = cal.getTime();
                days = -((ed.getTime() - sd.getTime()) / (3600 * 24 * 1000)) + 1;
                System.out.println("距离你生日还有" + days + "天");
            }
            if(days == 366L) days = 1;
            if(days == 365L) days = 0;
            String days_ = Long.toString(days);
            return days_;
    }
}

这是我写得一个小的生日记录的demo:(这里面包含了添加,删除,多是在一个Activity内,通讯录获取的可以不用写,跟上个博客连在一起的。)

birthdayActivity.class

package com.example.sendmsg;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;


import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

@SuppressLint("NewApi") public class BirthListActivity extends Activity{
   

    //1界面
    private ListView festival_list1;
    private ImageView image;
    private ImageView back_image;
    private TextView text_name;
    private BirthdayAdapter adapter;
    private ArrayList<Birthday> birth_lists = new ArrayList<Birthday>();
    //2界面
    private ListView person_list;
    private LinearLayout secondActivity;
    private TextView data;
    private EditText person;
    private Button search_btn;
    private Button add_main;
    private Button back;
    private LinearLayout add_person;
    private LinearLayout add_date;
    private int year,month,day;
    private String datas;
    private String days;
    private String number;
    private String name;
    private ArrayList<Birthday> personlist;
    @SuppressLint("NewApi") 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值