This Python program processes call data for multiple subscribers.
For each subscriber, it receives the start time of the call (0–23), the number of calls made, and the duration of each call.
It calculates the gross cost, tax amount, and total payable amount.
If the start time is 0, it is displayed as 99 instead.
def process_subscriber(start_hour, call_durations):
rate_per_minute = 46
tax_rate = 0.09
total_minutes = sum(call_durations)
gross_cost = total_minutes * rate_per_minute
tax_amount = gross_cost * tax_rate
total_cost = gross_cost + tax_amount
display_hour = 99 if start_hour == 0 else start_hour
print(f"Start Hour: {display_hour}")
print(f"Total Minutes: {total_minutes}")
print(f"Gross Cost: {gross_cost:.2f} Rials")
print(f"Tax Amount: {tax_amount:.2f} Rials")
print(f"Total Cost: {total_cost:.2f} Rials")
print("-" * 40)
# Run the program for multiple subscribers
num_subscribers = int(input("Enter number of subscribers: "))
for i in range(num_subscribers):
print(f"\nSubscriber {i+1}")
start_hour = int(input("Enter start hour (0–23): "))
num_calls = int(input("Enter number of calls: "))
call_durations = []
for j in range(num_calls):
duration = int(input(f"Enter duration of call {j+1} (minutes): "))
call_durations.append(duration)
process_subscriber(start_hour, call_durations)
Start Hour: 99
Total Minutes: 25
Gross Cost: 1150.00 Rials
Tax Amount: 103.50 Rials
Total Cost: 1253.50 Rials
----------------------------------------
- The program loops through each subscriber
- For each, it reads the start hour, number of calls, and durations
- It calculates the total minutes, gross cost, tax, and total payable
- If the start hour is 0, it is displayed as 99
- The output includes all computed values in a clean format