47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from datetime import datetime, timedelta
 | |
| from typing import List, Dict
 | |
| 
 | |
| def filter_accounts_next_30_days(accounts: List[Dict[str, int]]) -> List[Dict[str, int]]:
 | |
|     """Filter accounts whose expiry date falls within the next 30 days.
 | |
| 
 | |
|     Args:
 | |
|         accounts (List[Dict[str, int]]): A list of account dictionaries, each containing 
 | |
|             an 'expiaryDate' key with an epoch timestamp as its value.
 | |
| 
 | |
|     Returns:
 | |
|         List[Dict[str, int]]: A list of accounts expiring within the next 30 days.
 | |
|     """
 | |
|     now = datetime.now()
 | |
|     thirty_days_later = now + timedelta(days=30)
 | |
| 
 | |
|     # Convert current time and 30 days later to epoch timestamps
 | |
|     now_timestamp = int(now.timestamp())
 | |
|     thirty_days_later_timestamp = int(thirty_days_later.timestamp())
 | |
| 
 | |
|     # Filter accounts with expiryDate within the next 30 days
 | |
|     return [
 | |
|         account for account in accounts
 | |
|         if now_timestamp <= account['expiaryDate'] < thirty_days_later_timestamp
 | |
|     ]
 | |
| 
 | |
| def filter_accounts_expired(accounts: List[Dict[str, int]]) -> List[Dict[str, int]]:
 | |
|     """Filter accounts whose expiry date has passed.
 | |
| 
 | |
|     Args:
 | |
|         accounts (List[Dict[str, int]]): A list of account dictionaries, each containing 
 | |
|             an 'expiaryDate' key with an epoch timestamp as its value.
 | |
| 
 | |
|     Returns:
 | |
|         List[Dict[str, int]]: A list of accounts that have expired.
 | |
|     """
 | |
|     # Get the current epoch timestamp
 | |
|     current_timestamp = int(datetime.now().timestamp())
 | |
| 
 | |
|     # Filter accounts where the current date is greater than the expiryDate
 | |
|     expired_accounts = [
 | |
|         account for account in accounts
 | |
|         if account['expiaryDate'] < current_timestamp
 | |
|     ]
 | |
| 
 | |
|     return expired_accounts
 |