سورس محاسبه سن افراد در اندروید
یکشنبه 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()); } }
که داخل آن متد دیتا پیکر نوشته شده است ابزارهای استفاده شده تعریف شده است و متدی که برای محاسبه سن کاربر نوشته شده است فراخوانی شده است.
خروجی به صورت زیر خواهد بود:
- Android
- 3k بازدید
- 9 تشکر