PDA

View Full Version : دریافت تاریخ روز



investo
سه شنبه 18 شهریور 1399, 20:26 عصر
سلام
دوستان من کد ( کوتلین ) دریافت تاریخ روز رو لازم دارم . کدهای زیادی دیدم ولی نمیدونم اونی که من میخوام کدوم هست .
فرض کنید من یک متغییر تعریف کردم به نام IDAY و میخوام این متغییر برابر با عدد امروز باشه مثلا اگر امروز چهارم اکتبر هست . این متغییر بشه 4 . لطفا راهنمایی بفرمائید . با تشکر

Nevercom
سه شنبه 18 شهریور 1399, 22:29 عصر
val cal = Calendar.getInstance()
val iDay = cal.get(Calendar.DAY_OF_MONTH)
Log.d("TAG", "day: $iDay")

investo
چهارشنبه 19 شهریور 1399, 11:48 صبح
val cal = Calendar.getInstance()
val iDay = cal.get(Calendar.DAY_OF_MONTH)
Log.d("TAG", "day: $iDay")

ممنون
در برنامه من این متغییر iday هر روز تغییر میکنه و باید مقدار جدید به خود بگیره . پس باید var استفاده بشه ؟ درسته ؟

Nevercom
شنبه 22 شهریور 1399, 13:34 عصر
این البته خیلی بستگی به ساختار برنامه و اینکه این کد قراره کجا استفاده بشه داره، البته با توجه به اینکه متغیر iDay تنها بعد از اجرای متد get مقدار (جدید) به خودش می‌گیره و بعد از اون هم دلیلی نداره که تغییر کنه (مثلا مقدارش بعد از متد کال بشه ۶ و خودتون با یه عددی جمعش کنید) تصور نمی‌کنم نیاز باشه از نوع var باشه.

توصیه من اینه به عنوان یه عادت همه متغیرها رو val تعریف کنید مگر اینکه نیاز باشه که var باشه.

investo
پنج شنبه 03 مهر 1399, 11:52 صبح
این البته خیلی بستگی به ساختار برنامه و اینکه این کد قراره کجا استفاده بشه داره، البته با توجه به اینکه متغیر iDay تنها بعد از اجرای متد get مقدار (جدید) به خودش می‌گیره و بعد از اون هم دلیلی نداره که تغییر کنه (مثلا مقدارش بعد از متد کال بشه ۶ و خودتون با یه عددی جمعش کنید) تصور نمی‌کنم نیاز باشه از نوع var باشه.

توصیه من اینه به عنوان یه عادت همه متغیرها رو val تعریف کنید مگر اینکه نیاز باشه که var باشه.


بسیار ممنون از راهنمایی کامل شما
توی برنامه من چهار نوع متغییر وجود دارند و هر نوع متغییر 31 بار تعریف شده یعنی کلا 124 متغییر
tl01 تا tl31

tw01 تا tw31

ts01 تا ts31

tw01 تا tw31

حالا بسته به این که امروز چه روزی هست چهار مقداری که کاربر وارد میکنه در متغییر های همون روز ذخیره میشن .



button6.setOnClickListener {if (iday==1) {
val parameterIntent = Intent (this,MainMain::class.java)

parameterIntent.putExtra("tl01",editTexta.text.toString())
parameterIntent.putExtra("tw01",editTextb.text.toString())
parameterIntent.putExtra("ts01",editTextc.text.toString())
parameterIntent.putExtra("tw01",editTextd.text.toString())
startActivity(parameterIntent)
}

if (iday==2) {
val parameterIntent = Intent (this,MainMain::class.java)

parameterIntent.putExtra("tl02",editTexta.text.toString())
parameterIntent.putExtra("tw02",editTextb.text.toString())
parameterIntent.putExtra("ts02",editTextc.text.toString())
parameterIntent.putExtra("tw02",editTextd.text.toString())
startActivity(parameterIntent)
}


}
و این مقدادیر ارسالی توی یک صفحه ی دیگه دریافت و ذخیره میشن .


var tl01 =intent.getStringExtra("tl01")
var tw01 =intent.getStringExtra("tw01")
var ts01 =intent.getStringExtra("ts01")
var tw01 =intent.getStringExtra("tw01")



var tl02 =intent.getStringExtra("tl02")
var tw02 =intent.getStringExtra("tw02")
var ts02 =intent.getStringExtra("ts02")
var tw02 =intent.getStringExtra("tw02")

هر روز iday باید یک مقدار جدید به خودش بگیره تا بتونه مقادیر وارد شده ی اون روز به متغییر های مربوطه ارسال کنه . حالا نمیدونم با این کد ها اصلا کار کنن یا نه ؟