Time Duration Pray Times

 Java Code

package com.imransworld.prayertime;

import android.os.Bundle;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONObject;

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

public class TimeDuration extends AppCompatActivity {

private TextView fajrDurationTextView, dhuhrDurationTextView, asrDurationTextView, maghribDurationTextView, ishaDurationTextView;
private String city = "Dhaka"; // Example city (you can replace it with user input)
private String country = "Bangladesh"; // Example country (replace it as needed)

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time_duration);

// Initialize TextViews
fajrDurationTextView = findViewById(R.id.fajrDurationTextView);
dhuhrDurationTextView = findViewById(R.id.dhuhrDurationTextView);
asrDurationTextView = findViewById(R.id.asrDurationTextView);
maghribDurationTextView = findViewById(R.id.maghribDurationTextView);
ishaDurationTextView = findViewById(R.id.ishaDurationTextView);

// Fetch prayer times using Aladhan API
fetchPrayerTimes(city, country);
}

// Method to calculate the time difference between two prayer times
private String calculateDuration(String startTime, String endTime) {
try {
SimpleDateFormat format = new SimpleDateFormat("HH:mm", Locale.getDefault());

// Parse the start and end time
Date startDate = format.parse(startTime);
Date endDate = format.parse(endTime);

// If the end time is earlier than the start time, it means the end time is on the next day
if (endDate.before(startDate)) {
// Add 24 hours to the end time to handle the transition to the next day
Calendar calendar = Calendar.getInstance();
calendar.setTime(endDate);
calendar.add(Calendar.DATE, 1); // Add 1 day
endDate = calendar.getTime();
}

// Calculate the difference in milliseconds
long difference = endDate.getTime() - startDate.getTime();

// Convert milliseconds to hours and minutes
long hours = (difference / (1000 * 60 * 60)) % 24;
long minutes = (difference / (1000 * 60)) % 60;

// Format the duration in hours and minutes
return String.format(Locale.getDefault(), "%02d hours %02d minutes", hours, minutes);
} catch (Exception e) {
e.printStackTrace();
return "";
}
}

// Method to set and display prayer durations
private void setPrayerDurations(String fajr, String dhuhr, String asr, String maghrib, String isha) {
// Calculate the duration of each prayer by comparing it to the next one
String fajrDuration = calculateDuration(fajr, dhuhr);
String dhuhrDuration = calculateDuration(dhuhr, asr);
String asrDuration = calculateDuration(asr, maghrib);
String maghribDuration = calculateDuration(maghrib, isha);

// For Isha, we calculate the time until Fajr the next day
String ishaDuration = calculateDuration(isha, fajr);

// Display the durations in the UI
fajrDurationTextView.setText("Fajr: " + fajrDuration);
dhuhrDurationTextView.setText("Dhuhr: " + dhuhrDuration);
asrDurationTextView.setText("Asr: " + asrDuration);
maghribDurationTextView.setText("Maghrib: " + maghribDuration);
ishaDurationTextView.setText("Isha: " + ishaDuration);
}

// Method to fetch prayer times using Aladhan API
private void fetchPrayerTimes(String city, String country) {
// Construct the API URL
String url = "https://api.aladhan.com/v1/timingsByCity?city=" + city + "&country=" + country;

// Make a request using Volley
RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
// Extract prayer times from the API response
JSONObject data = response.getJSONObject("data").getJSONObject("timings");
String fajr = data.getString("Fajr");
String dhuhr = data.getString("Dhuhr");
String asr = data.getString("Asr");
String maghrib = data.getString("Maghrib");
String isha = data.getString("Isha");

// Set the prayer durations
setPrayerDurations(fajr, dhuhr, asr, maghrib, isha);

} catch (Exception e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});

// Add the request to the queue
queue.add(jsonObjectRequest);
}
}


XML Code

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".TimeDuration">

<TextView
android:id="@+id/fajrDurationTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fajr Duration" />

<TextView
android:id="@+id/dhuhrDurationTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dhuhr Duration" />

<!-- Add similar TextViews for Asr, Maghrib, Isha -->

<TextView
android:id="@+id/asrDurationTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dhuhr Duration" />

<TextView
android:id="@+id/maghribDurationTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dhuhr Duration" />

<TextView
android:id="@+id/ishaDurationTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dhuhr Duration" />

</LinearLayout>






Post a Comment

Post a Comment (0)

Previous Post Next Post