سورس محاسبه سن افراد در اندروید

یکشنبه 20 فروردین 1396

در این مقاله قصد داریم که با استفاده از یک تقویم کاربر بتواند تاریخ تولد خودش را وارد نماید و بعد از وارد کردن آن بتواند سن خود را به سال و ماه و روز ببیند و آن را محاسبه نماید نمونه کد را توضیح می دهیم.

سورس محاسبه سن افراد در اندروید

ابتدا در لایه ی main قطعه کد زیر را قرار دهید:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Date Of Birth" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1"
        android:layout_marginTop="23dp"
        android:text="Current Date" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="18dp"
        android:text="Birth Date" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="16dp"
        android:text="Result" />

</RelativeLayout>

در اینجا دو کلاس جاوا داریم :

package com.example.agecalculatorapp;

import java.util.Calendar;
import java.util.Date;

public class AgeCalculation {
    private int startYear;
    private int startMonth;
    private int startDay;
    private int endYear;
    private int endMonth;
    private int endDay;
    private int resYear;
    private int resMonth;
    private int resDay;
    private Calendar start;
    private Calendar end;
    public String getCurrentDate()
	{
		  end=Calendar.getInstance();
		  endYear=end.get(Calendar.YEAR);
		  endMonth=end.get(Calendar.MONTH);
		  endMonth++;
		  endDay=end.get(Calendar.DAY_OF_MONTH);
		  return endDay+":"+endMonth+":"+endYear;
	}
	public void setDateOfBirth(int sYear, int sMonth, int sDay)
    {
	 startYear=sYear;
	 startMonth=sMonth;
	 startMonth++;
	 startDay=sDay;
	 
    }
	public void calcualteYear()
	{
		resYear=endYear-startYear;
		 
	}
	
	public void calcualteMonth()
	{
		if(endMonth>=startMonth)
		{
			 resMonth= endMonth-startMonth;
		}
		else
		{
			resMonth=endMonth-startMonth;
			resMonth=12+resMonth;
			resYear--;
		}
	 
	}
	public void  calcualteDay()
	{

		if(endDay>=startDay)
		{
			 resDay= endDay-startDay;
		}
		else
		{
			resDay=endDay-startDay;
			resDay=30+resDay;
			if(resMonth==0)
			{
				resMonth=11;
				resYear--;
			}
			else
			{
				resMonth--;
			}
			 
		}
	}
	 
	public String getResult()
	{
		return resDay+":"+resMonth+":"+resYear;
	}
	 public long getSeconde()
	 {
		 start=Calendar.getInstance();
		 start.set(Calendar.YEAR, startYear);
		 start.set(Calendar.MONTH, startMonth);
		 start.set(Calendar.DAY_OF_MONTH, startDay);
		 start.set(Calendar.HOUR, 12);
		 start.set(Calendar.MINUTE, 30);
		 start.set(Calendar.SECOND, 30);
		 start.set(Calendar.MILLISECOND, 30);
	     long now=end.getTimeInMillis();
		 long old=start.getTimeInMillis();
		 long diff=old-now;
		 return diff/1000;
	 }
}

اولین کلاس محاسبه سن کاربر است که با زدن تاریخ تولد خود سن آن محاسبه می شود.

کلاس دوم:

package com.example.agecalculatorapp;

import java.util.Calendar;
import java.util.Timer;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{
    private Button btnStart;
    static final int DATE_START_DIALOG_ID = 0;
    private int startYear=1970;
    private int startMonth=6;
    private int startDay=15;
    private AgeCalculation age = null;
    private TextView currentDate;
    private TextView birthDate;
    private TextView result;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        age=new AgeCalculation();
        currentDate=(TextView) findViewById(R.id.textView1);
        currentDate.setText("Current Date(DD/MM/YY) : "+age.getCurrentDate());
        birthDate=(TextView) findViewById(R.id.textView2);
        result=(TextView) findViewById(R.id.textView3);
        btnStart=(Button) findViewById(R.id.button1);
        btnStart.setOnClickListener(this);
      
    }
   
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_START_DIALOG_ID:
            return new DatePickerDialog(this,
                        mDateSetListener,
                        startYear, startMonth, startDay);
         }
        return null;
     }
   
    private DatePickerDialog.OnDateSetListener mDateSetListener 
    = new DatePickerDialog.OnDateSetListener() {
    	public void onDateSet(DatePicker view, int selectedYear,
				int selectedMonth, int selectedDay) {
    		     startYear=selectedYear;
    		 	 startMonth=selectedMonth;
    		 	 startDay=selectedDay;
    		 	 age.setDateOfBirth(startYear, startMonth, startDay);
    		     birthDate.setText("Date of Birth(DD/MM/YY): "+selectedDay+":"+(startMonth+1)+":"+startYear); 		 	 
    	         calculateAge();
    	}
    };
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.button1:
		showDialog(DATE_START_DIALOG_ID);
			break;
        
		default:
			break;
		}
	}
	private void calculateAge()
	{       
		age.calcualteYear();
		age.calcualteMonth();
	    age.calcualteDay();
	  	Toast.makeText(getBaseContext(), "click the resulted button"+age.getResult() , Toast.LENGTH_SHORT).show();
	    result.setText("AGE (DD/MM/YY) :"+age.getResult());
	}
}

که داخل آن متد دیتا پیکر نوشته شده است ابزارهای استفاده شده تعریف شده است و متدی که برای محاسبه سن کاربر نوشته شده است فراخوانی شده است.

خروجی به صورت زیر خواهد بود:

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید