Here's a change to parameterize the date:
Select s.Name, s.Rate_Per_Hour, count(*) as No_of_day,
sum(datediff("n",a.Time_in,a.Time_out))/60 * s.rate_per_hour as Total_Income
From
tblStaff as S inner join tblAttendance as A
on s.Name = a.Name
where a.date between [Enter First Date] and [Enter Last Date]
group by s.name, s.rate_per_hour
For number of days, the query returns number of days worked. If you want number of calendar days, then change "count(*)" to "datediff("d", min(a.date), max(a.date))
Your total income calculation does not make sense. I will gladly sign a 1 year contract at $1 per hour:
number of days * number of hours * rate per hours
260 * 2080 * $1 = $540,000