123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- from datetime import datetime
- from typing import List, Dict
- def filter_accounts_current_month(accounts: List[Dict[str, int]]) -> List[Dict[str, int]]:
- """Filter accounts whose expiry date falls within the current month.
- 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 in the current month.
- """
-
- now = datetime.now()
- start_of_month = datetime(now.year, now.month, 1)
-
- if now.month == 12:
-
- start_of_next_month = datetime(now.year + 1, 1, 1)
- else:
-
- start_of_next_month = datetime(now.year, now.month + 1, 1)
-
- start_of_month_timestamp = int(start_of_month.timestamp())
- start_of_next_month_timestamp = int(start_of_next_month.timestamp())
-
- accounts_in_current_month = [
- account for account in accounts
- if start_of_month_timestamp <= account['expiaryDate'] < start_of_next_month_timestamp
- ]
- return accounts_in_current_month
- 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.
- """
-
- current_timestamp = int(datetime.now().timestamp())
-
- expired_accounts = [
- account for account in accounts
- if account['expiaryDate'] < current_timestamp
- ]
- return expired_accounts
|