isAtOrBefore
isAtOrBefore
(date1: date) => (date2: date) => boolean
Test if a date is the same as or before another
const janFirst2025 = new Date('2025 1 1') const isAtOrBeforeJanFirst2025 = isAtOrBefore(janFirst2025) const decFirst2024 = new Date('2024 12 1') isAtOrBeforeJanFirst2025(decFirst2024) // is true const now = new Date() isAtOrBeforeJanFirst2025(now) // is false isAtOrBeforeJanFirst2025(janFirst2025) // is true
const janFirst2025 = new Date('2025 1 1') const isAtOrBeforeJanFirst2025 = isAtOrBefore(janFirst2025) const decFirst2024 = new Date('2024 12 1') isAtOrBeforeJanFirst2025(decFirst2024) // is true const now = new Date() isAtOrBeforeJanFirst2025(now) // is false isAtOrBeforeJanFirst2025(janFirst2025) // is true
const janFirst2025 = new Date('2025 1 1') const isAtOrBeforeJanFirst2025 = isAtOrBefore(janFirst2025) const decFirst2024 = new Date('2024 12 1') isAtOrBeforeJanFirst2025(decFirst2024) // is true const now = new Date() isAtOrBeforeJanFirst2025(now) // is false isAtOrBeforeJanFirst2025(janFirst2025) // is true
const janFirst2025 = new Date('2025 1 1') const isAtOrBeforeJanFirst2025 = isAtOrBefore(janFirst2025) const decFirst2024 = new Date('2024 12 1') isAtOrBeforeJanFirst2025(decFirst2024) // is true const now = new Date() isAtOrBeforeJanFirst2025(now) // is false isAtOrBeforeJanFirst2025(janFirst2025) // is true
Sometimes we need to compare dates. Below, we want to clean up our email. Let's archive any that are at least a year old.
// assume today is 2025 1 15 const oneYearAgo = new Date('2024 1 15') const emails = [ { subject: 'Policy renewal', received: new Date('2024 1 15'), }, { subject: 'Soccer league starting soon', received: new Date('2024 1 16'), }, ] const shouldArchive = compose([get('received'), isAtOrBefore(oneYearAgo)]) const archive = keepWhen(shouldArchive) const emailsToArchive = archive(emails) console.log(emailsToArchive) // is [ // { // subject: 'Policy renewal', // received: 2024 1 15 // } // ]
// assume today is 2025 1 15 const oneYearAgo = new Date('2024 1 15') type Email = { subject: string received: Date } const emails: Email[] = [ { subject: 'Policy renewal', received: new Date('2024 1 15'), }, { subject: 'Soccer league starting soon', received: new Date('2024 1 16'), }, ] const shouldArchive = compose([ get('received')<Email>, isAtOrBefore(oneYearAgo), ]) const archive = keepWhen(shouldArchive)<Email[]> const emailsToArchive = archive(emails) console.log(emailsToArchive) // is [ // { // subject: 'Policy renewal', // received: 2024 1 15 // } // ]
// assume today is 2025 1 15 const oneYearAgo = new Date('2024 1 15') const emails = [ { subject: 'Policy renewal', received: new Date('2024 1 15'), }, { subject: 'Soccer league starting soon', received: new Date('2024 1 16'), }, ] const shouldArchive = compose([ get('received'), isAtOrBefore(oneYearAgo), ]) const archive = keepWhen(shouldArchive) const emailsToArchive = archive(emails) console.log(emailsToArchive) // is [ // { // subject: 'Policy renewal', // received: 2024 1 15 // } // ]
// assume today is 2025 1 15 const oneYearAgo = new Date('2024 1 15') type Email = { subject: string received: Date } const emails: Email[] = [ { subject: 'Policy renewal', received: new Date('2024 1 15'), }, { subject: 'Soccer league starting soon', received: new Date('2024 1 16'), }, ] const shouldArchive = compose([ get('received')<Email>, isAtOrBefore(oneYearAgo), ]) const archive = keepWhen(shouldArchive)<Email[]> const emailsToArchive = archive(emails) console.log(emailsToArchive) // is [ // { // subject: 'Policy renewal', // received: 2024 1 15 // } // ]