I have written my own logic for this.
fun getStartDateAndEndDateOfWeek(myDate :String) : ArrayList<String>{
var dates:ArrayList<String> = arrayListOf()
var cal = Calendar.getInstance()
cal.time = SimpleDateFormat("yyy/MM/dd").parse(myDate)
Log.e("==== ","== My Date : ${SimpleDateFormat("EEE,dd MMM yyyy").format(SimpleDateFormat("yyy/MM/dd").parse(myDate))} ")
Log.e("== ","Day of Week : ${cal.get(Calendar.DAY_OF_WEEK)}")
var startDate =""
var endDate =""
when(cal.get(Calendar.DAY_OF_WEEK)){
1 ->{
var date = getOldDate(6,cal.time)
startDate = "${SimpleDateFormat("EEE,dd MMM yyyy").format(date)}"
endDate ="${SimpleDateFormat("EEE,dd MMM yyyy").format(cal.time)}"
Log.e("======","----------------------------------------------------")
Log.e("======","----------------User Date is Sunday------------------")
Log.e("======","----------------------------------------------------")
Log.e("======","Start Date : $startDate")
Log.e("======","End Date : $endDate")
Log.e("======","----------------------------------------------------")
dates.add(startDate)
dates.add(endDate)
}
2 ->{
var sdate = getOldDate(0,cal.time)
var edate = getOldDate(-6,cal.time)
startDate = "${SimpleDateFormat("EEE,dd MMM yyyy").format(sdate)}"
endDate ="${SimpleDateFormat("EEE,dd MMM yyyy").format(edate)}"
Log.e("======","----------------------------------------------------")
Log.e("======","----------------User Date is Monday------------------")
Log.e("======","----------------------------------------------------")
Log.e("======","Start Date : $startDate")
Log.e("======","End Date : $endDate")
Log.e("======","----------------------------------------------------")
dates.add(startDate)
dates.add(endDate)
}
3 ->{
var sdate = getOldDate(1,cal.time)
var edate = getOldDate(-5,cal.time)
startDate = "${SimpleDateFormat("EEE,dd MMM yyyy").format(sdate)}"
endDate ="${SimpleDateFormat("EEE,dd MMM yyyy").format(edate)}"
Log.e("======","----------------------------------------------------")
Log.e("======","----------------User Date is Tuesday------------------")
Log.e("======","----------------------------------------------------")
Log.e("======","Start Date : $startDate")
Log.e("======","End Date : $endDate")
Log.e("======","----------------------------------------------------")
dates.add(startDate)
dates.add(endDate)
}
4 ->{
var sdate = getOldDate(2,cal.time)
var edate = getOldDate(-4,cal.time)
startDate = "${SimpleDateFormat("EEE,dd MMM yyyy").format(sdate)}"
endDate ="${SimpleDateFormat("EEE,dd MMM yyyy").format(edate)}"
Log.e("======","----------------------------------------------------")
Log.e("======","----------------User Date is Wednesday------------------")
Log.e("======","----------------------------------------------------")
Log.e("======","Start Date : $startDate")
Log.e("======","End Date : $endDate")
Log.e("======","----------------------------------------------------")
dates.add(startDate)
dates.add(endDate)
}
5 ->{
var sdate = getOldDate(3,cal.time)
var edate = getOldDate(-3,cal.time)
startDate = "${SimpleDateFormat("EEE,dd MMM yyyy").format(sdate)}"
endDate ="${SimpleDateFormat("EEE,dd MMM yyyy").format(edate)}"
Log.e("======","----------------------------------------------------")
Log.e("======","----------------User Date is Thursday------------------")
Log.e("======","----------------------------------------------------")
Log.e("======","Start Date : $startDate")
Log.e("======","End Date : $endDate")
Log.e("======","----------------------------------------------------")
dates.add(startDate)
dates.add(endDate)
}
6 ->{
var sdate = getOldDate(4,cal.time)
var edate = getOldDate(-2,cal.time)
startDate = "${SimpleDateFormat("EEE,dd MMM yyyy").format(sdate)}"
endDate ="${SimpleDateFormat("EEE,dd MMM yyyy").format(edate)}"
Log.e("======","----------------------------------------------------")
Log.e("======","----------------User Date is Friday------------------")
Log.e("======","----------------------------------------------------")
Log.e("======","Start Date : $startDate")
Log.e("======","End Date : $endDate")
Log.e("======","----------------------------------------------------")
dates.add(startDate)
dates.add(endDate)
}
7 ->{
var sdate = getOldDate(5,cal.time)
var edate = getOldDate(-1,cal.time)
startDate = "${SimpleDateFormat("EEE,dd MMM yyyy").format(sdate)}"
endDate ="${SimpleDateFormat("EEE,dd MMM yyyy").format(edate)}"
Log.e("======","----------------------------------------------------")
Log.e("======","----------------User Date is Saturday------------------")
Log.e("======","----------------------------------------------------")
Log.e("======","Start Date : $startDate")
Log.e("======","End Date : $endDate")
Log.e("======","----------------------------------------------------")
dates.add(startDate)
dates.add(endDate)
}
}
return dates
//getStartEndOFWeek(cal.get(Calendar.WEEK_OF_YEAR),cal.get(Calendar.YEAR),myDate)
}
fun getOldDate(daysAgo: Int,myDate:Date): Date {
val calendar = Calendar.getInstance()
/*calendar.set(Calendar.MONTH, APRIL)
calendar.set(Calendar.DAY_OF_MONTH,6)
calendar.set(Calendar.YEAR,2020)
Log.e("==== ","===== Date : ${calendar.time}")*/
calendar.add(Calendar.DAY_OF_YEAR, -daysAgo)
//Log.e("==== ","===== Date $daysAgo ago : ${calendar.time}")
return calendar.time
}