isAtOrAfter

isAtOrAfter

  • (date1: date) => (date2: date) => boolean
  1. Test if a date is the same as or after another

    const janFirst2025 = new Date('2025 1 1')
    const isAtOrAfterJanFirst2025 = isAtOrAfter(janFirst2025)
    
    const now = new Date()
    isAtOrAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAtOrAfterJanFirst2025(decFirst2024) // is false
    
    isAtOrAfterJanFirst2025(janFirst2025) // is true
    const janFirst2025 = new Date('2025 1 1')
    const isAtOrAfterJanFirst2025 = isAtOrAfter(janFirst2025)
    
    const now = new Date()
    isAtOrAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAtOrAfterJanFirst2025(decFirst2024) // is false
    
    isAtOrAfterJanFirst2025(janFirst2025) // is true
    
    const janFirst2025 = new Date('2025 1 1')
    const isAtOrAfterJanFirst2025 =
      isAtOrAfter(janFirst2025)
    
    const now = new Date()
    isAtOrAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAtOrAfterJanFirst2025(decFirst2024) // is false
    
    isAtOrAfterJanFirst2025(janFirst2025) // is true
    const janFirst2025 = new Date('2025 1 1')
    const isAtOrAfterJanFirst2025 =
      isAtOrAfter(janFirst2025)
    
    const now = new Date()
    isAtOrAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAtOrAfterJanFirst2025(decFirst2024) // is false
    
    isAtOrAfterJanFirst2025(janFirst2025) // is true
    
  2. Sometimes we need to compare dates. Below, we have some tablets sent in for repair. Those under warranty can be repaired now, so let's find them.

    const tabletsOnDesk = [
      {
        name: 'Samsung Galaxy',
        purchaseDate: new Date('2024 6 11'),
      },
      {
        name: 'OnePlus Pad',
        purchaseDate: new Date('2023 9 21'),
      },
    ]
    
    const janFirst2024 = new Date('2024 1 1')
    const isEligibleForWarranty = compose([
      get('purchaseDate'),
      isAtOrAfter(janFirst2024),
    ])
    
    const tabletsToRepair = tabletsOnDesk.filter(isEligibleForWarranty)
    console.log(tabletsToRepair)
    // is [
    //   {
    //     name: Samsung Galaxy
    //     purchaseDate: 2024 6 11
    //   }
    // ]
    type Tablet = {
      name: string
      purchaseDate: Date
    }
    
    const tabletsOnDesk: Tablet[] = [
      {
        name: 'Samsung Galaxy',
        purchaseDate: new Date('2024 6 11'),
      },
      {
        name: 'OnePlus Pad',
        purchaseDate: new Date('2023 9 21'),
      },
    ]
    
    const janFirst2024 = new Date('2024 1 1')
    const isEligibleForWarranty = compose([
      get('purchaseDate')<Tablet>,
      isAtOrAfter(janFirst2024),
    ])
    
    const tabletsToRepair = tabletsOnDesk.filter(isEligibleForWarranty)
    console.log(tabletsToRepair)
    // is [
    //   {
    //     name: Samsung Galaxy
    //     purchaseDate: 2024 6 11
    //   }
    // ]
    
    const tabletsOnDesk = [
      {
        name: 'Samsung Galaxy',
        purchaseDate: new Date('2024 6 11'),
      },
      {
        name: 'OnePlus Pad',
        purchaseDate: new Date('2023 9 21'),
      },
    ]
    
    const janFirst2024 = new Date('2024 1 1')
    const isEligibleForWarranty = compose([
      get('purchaseDate'),
      isAtOrAfter(janFirst2024),
    ])
    
    const tabletsToRepair = tabletsOnDesk.filter(
      isEligibleForWarranty
    )
    console.log(tabletsToRepair)
    // is [
    //   {
    //     name: Samsung Galaxy
    //     purchaseDate: 2024 6 11
    //   }
    // ]
    type Tablet = {
      name: string
      purchaseDate: Date
    }
    
    const tabletsOnDesk: Tablet[] = [
      {
        name: 'Samsung Galaxy',
        purchaseDate: new Date('2024 6 11'),
      },
      {
        name: 'OnePlus Pad',
        purchaseDate: new Date('2023 9 21'),
      },
    ]
    
    const janFirst2024 = new Date('2024 1 1')
    const isEligibleForWarranty = compose([
      get('purchaseDate')<Tablet>,
      isAtOrAfter(janFirst2024),
    ])
    
    const tabletsToRepair = tabletsOnDesk.filter(
      isEligibleForWarranty
    )
    console.log(tabletsToRepair)
    // is [
    //   {
    //     name: Samsung Galaxy
    //     purchaseDate: 2024 6 11
    //   }
    // ]