السلام عليكم ورحمة الله وبركاته, أنا الان أعمل على تطبيق في Android studio وانتهيت من اغلبة والحمدلله. لكن لدي بعض المشكلات التي أواجهها وان شاء الله سأفعل كل ما أستطيع لحلها. وانا الان أواجه مشكلة لم أستطع حلها واتمنى من الشخص الخبير ان ينير لي الطريق بفهم مشكلتي.
انا لدي "java class" في تطبيقي "أضغط هنا لرؤية الكود" يتم فيه حساب الصلوات اليومية من صلاة الفجر الى صلاة العشاء, وهذا الشيء يعمل لدي بشكل جيد ولله الحمد. والان انا اريد ان أضيف text view يقوم بحساب المتبقي لصلاة من الوقت الحالي, كمثال أريد بعد ان تنتهي صلاة العشاء يبدأ بالحساب لصلاة الفجر هكذا " المتبقي لصلاة الفجر 4 ساعات و 30 دقيقة" ويتم الحساب فيه بشكل تنازلي وما ان يصل وقت صلاة الفجر يبدأ بحساب الوقت المتبقي لموعد الشروق ثم لصلاة الظهر وهكذا الى ما لا نهايه.
ما أريده هو
Text view يتم فيه حساب المتبقي من الصلاوات الى الوقت الحالي
يتم الحساب بشكل تنازلي كمثال :" المتبقي لصلاة العصر 3 ساعات و20 دقيقة" وبعد كم من الوقت يكون هكذا " المتبقي لصلاة العصر 2 ساعه و 15 دقيقة"
وهذا الكود الذي كتبتة لجلب بيانات الصلاة من الكلاس (يعمل بشكل جيد الا حساب الوقت المتبقي بين الصلاتين)
val TimeId=TimezoneMapper.latLngToTimezoneString(
location.latitude,
location.longitude
)
val gmt =TimeZone.getTimeZone(TimeId).getDisplayName(false,TimeZone.SHORT)
val z1 = gmt.substring(4)
val z = z1.replace(":",".")
val zo = z.toDouble()
val latitude:Double= location.latitude
val longitude:Double= location.longitude
val locationPref = getSharedPreferences("location",Context.MODE_PRIVATE)
val editor = locationPref.edit()// editor.putFloat("lat", lat1.toFloat())// editor.putFloat("lng", lng.toFloat())
locationPref.edit().putDouble("latt1", latitude).apply()
locationPref.edit().putDouble("lngg2", longitude).apply()
editor.apply()
val timeZoneId =TimeZone.getAvailableIDs()
val prayTime = praytime()//prayTime.timeFormat = prayTime.time12 // getTime12 is protected
prayTime.timeFormat = prayTime.time12NS
prayTime.calcMethod = prayTime.makkah // Makkah
prayTime.asrJuristic = prayTime.shafii // Shafii (standard)
prayTime.adjustHighLats = prayTime.angleBased
// my codes
prayTime.timeZone = prayTime.timeZone1
prayTime.setFajrAngle(18.5)
prayTime.computeMidDay(prayTime.dhuhrMinutes.toDouble())
val offsets = intArrayOf(0,0,0,0,0,0,0)// {Fajr,Sunrise,Dhuhr,Asr,Sunset,Maghrib,Isha}
prayTime.tune(offsets)
cal =Calendar.getInstance(TimeZone.getTimeZone(timeZoneId.toString()))
val now =Date()
cal.time = now
val times:ArrayList<String>=
prayTime.getPrayerTimes(
cal, latitude, longitude, zo
)
findViewById<TextView>(R.id.Fajr).text = times.get(0)
findViewById<TextView>(R.id.sabah).text = times.get(1)
findViewById<TextView>(R.id.dhuhr).text = times.get(2)
findViewById<TextView>(R.id.AzanTime).text = times.get(3)
findViewById<TextView>(R.id.maghreb).text = times.get(4)
findViewById<TextView>(R.id.Esha).text = times.get(6)// الكود الذي تحت هذه جمله هو محاولة مني لكن للأسف بائت بالفشل<---------------------------------------------------------------------------------------------------------------------->// this is where i coun the time difference
val timeFormat =DateTimeFormatter.ofPattern("hh:mm a",Locale.getDefault())
val time =LocalTime.now().format(timeFormat)
val timeTo12AM ="12:00 AM"if(timeTo12AM <= time && time < times[0]){
val timeFormat1 =DateTimeFormatter.ofPattern("hh:mm a",Locale.ENGLISH)
val currentTime =SimpleDateFormat("hh:mm a",Locale.ENGLISH).format(Date())
val startTime = currentTime
val start =LocalTime.parse(startTime, timeFormat1)
val endTime = times[0]
val end =LocalTime.parse(endTime, timeFormat1)
val diff =Duration.between(start, end)
val hours = diff.toHours()
val minutes = diff.minusHours(hours).toMinutes()
salahName.text ="الفجر"
salahTimeLeft.text ="${hours}ساعات "+"${minutes} ودقيقة "if(hours.equals(0)){
salahTimeLeft.text ="${minutes}دقيقة "}}elseif(timeTo12AM <= time && time > times[0]&& time < times[1]){
val timeFormat1 =DateTimeFormatter.ofPattern("hh:mm a",Locale.ENGLISH)
val currentTime =SimpleDateFormat("hh:mm a",Locale.ENGLISH).format(Date())
val startTime = currentTime
val endTime = times[1]
val start =LocalTime.parse(startTime, timeFormat1)
val end =LocalTime.parse(endTime, timeFormat)
val diff =Duration.between(start, end)
val hours = diff.toHours()
val minutes = diff.minusHours(hours).toMinutes()
salahName.text ="الشروق"
salahTimeLeft.text ="${hours}ساعات "+"${minutes} ودقيقة "}elseif(timeTo12AM <= time && time >times[0]&& time > times[1]&& time < times[4]){
val timeFormat1 =DateTimeFormatter.ofPattern("hh:mm a",Locale.ENGLISH)
val currentTime =SimpleDateFormat("hh:mm a",Locale.ENGLISH).format(Date())
val startTime = currentTime
val endTime = times[4]
val start =LocalTime.parse(startTime, timeFormat1)
val end =LocalTime.parse(endTime, timeFormat)
val diff =Duration.between(start, end)
val hours = diff.toHours()
val minutes = diff.minusHours(hours).toMinutes()
salahName.text ="المغرب"
salahTimeLeft.text ="${hours}ساعات "+"${minutes} ودقيقة "}
السؤال
عبدالرحمن العنزي4
السلام عليكم ورحمة الله وبركاته, أنا الان أعمل على تطبيق في Android studio وانتهيت من اغلبة والحمدلله. لكن لدي بعض المشكلات التي أواجهها وان شاء الله سأفعل كل ما أستطيع لحلها. وانا الان أواجه مشكلة لم أستطع حلها واتمنى من الشخص الخبير ان ينير لي الطريق بفهم مشكلتي.
انا لدي "java class" في تطبيقي "أضغط هنا لرؤية الكود" يتم فيه حساب الصلوات اليومية من صلاة الفجر الى صلاة العشاء, وهذا الشيء يعمل لدي بشكل جيد ولله الحمد. والان انا اريد ان أضيف text view يقوم بحساب المتبقي لصلاة من الوقت الحالي, كمثال أريد بعد ان تنتهي صلاة العشاء يبدأ بالحساب لصلاة الفجر هكذا " المتبقي لصلاة الفجر 4 ساعات و 30 دقيقة" ويتم الحساب فيه بشكل تنازلي وما ان يصل وقت صلاة الفجر يبدأ بحساب الوقت المتبقي لموعد الشروق ثم لصلاة الظهر وهكذا الى ما لا نهايه.
ما أريده هو
وهذا الكود الذي كتبتة لجلب بيانات الصلاة من الكلاس (يعمل بشكل جيد الا حساب الوقت المتبقي بين الصلاتين)
7 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.