{
  "id": "days-until-the-25th",
  "version": "5979eef2d55a",
  "status": "published",
  "name": "Days Until the 25th",
  "question": "Days until the 25th",
  "summary": "Counts the days from today, or any date you choose, to the next 25th of a month, with its date and the 25th after it.",
  "category": "days",
  "subcategory": "countdowns",
  "url": "https://www.acalculator.org/days/days-until-the-25th",
  "markdown": "https://www.acalculator.org/days/days-until-the-25th.md",
  "kind": "function",
  "method": "Find the first date on or after the start date that is the 25th of its month, then count the days from the start date to it.",
  "assumptions": [
    "On the 25th, the count is 0, and the 25th after is the 25th of the next month that has one.",
    "Every month has a 25th, so the next one is never more than a month away.",
    "The start date itself is not counted: from the day before, the count is 1.",
    "Dates are calendar days with no time of day, so a time zone or a daylight-saving change never adds or loses a day.",
    "Start dates from January 1, 1900 to December 31, 2400 work."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "from": {
        "title": "Count from",
        "description": "The date to count from. Today, unless you change it.",
        "type": "string",
        "format": "date"
      }
    }
  },
  "outputs": {
    "days": {
      "label": "Days until the 25th",
      "description": "Whole days from the start date to the next 25th of a month; 0 when the start date is the 25th.",
      "format": "integer"
    },
    "date": {
      "label": "Next 25th",
      "description": "The first date on or after the start date that is the 25th of its month.",
      "format": "date-long"
    },
    "after": {
      "label": "The 25th after",
      "description": "The next 25th after that date.",
      "format": "date-long"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "from": "2026-10-19"
    },
    "outputs": {
      "days": 6,
      "date": "2026-10-25",
      "after": "2026-11-25"
    },
    "text": "From October 19, 2026, there are 6 days until the 25th, Sunday, October 25, 2026."
  },
  "examples": [
    {
      "given": {
        "from": "2026-10-19"
      },
      "expect": {
        "date": "2026-10-25",
        "days": 6,
        "after": "2026-11-25"
      },
      "source": "IETF RFC 3339, section 5.7 (days in each month) and Appendix C (the leap year rule) (https://www.rfc-editor.org/rfc/rfc3339); Python 3 datetime, walking one day at a time from the start date (docs/progress/WP-141/truth_days.py)"
    },
    {
      "given": {
        "from": "2026-12-31"
      },
      "expect": {
        "date": "2027-01-25",
        "days": 25,
        "after": "2027-02-25"
      },
      "source": "IETF RFC 3339, section 5.7 (days in each month) and Appendix C (the leap year rule) (https://www.rfc-editor.org/rfc/rfc3339); Python 3 datetime, walking one day at a time from the start date (docs/progress/WP-141/truth_days.py)"
    },
    {
      "given": {
        "from": "2027-02-01"
      },
      "expect": {
        "date": "2027-02-25",
        "days": 24,
        "after": "2027-03-25"
      },
      "source": "IETF RFC 3339, section 5.7 (days in each month) and Appendix C (the leap year rule) (https://www.rfc-editor.org/rfc/rfc3339); Python 3 datetime, walking one day at a time from the start date (docs/progress/WP-141/truth_days.py)"
    },
    {
      "given": {
        "from": "2028-02-15"
      },
      "expect": {
        "date": "2028-02-25",
        "days": 10,
        "after": "2028-03-25"
      },
      "source": "IETF RFC 3339, section 5.7 (days in each month) and Appendix C (the leap year rule) (https://www.rfc-editor.org/rfc/rfc3339); Python 3 datetime, walking one day at a time from the start date (docs/progress/WP-141/truth_days.py)"
    },
    {
      "given": {
        "from": "2027-01-25"
      },
      "expect": {
        "date": "2027-01-25",
        "days": 0,
        "after": "2027-02-25"
      },
      "source": "IETF RFC 3339, section 5.7 (days in each month) and Appendix C (the leap year rule) (https://www.rfc-editor.org/rfc/rfc3339); Python 3 datetime, walking one day at a time from the start date (docs/progress/WP-141/truth_days.py)"
    }
  ],
  "sources": [
    "IETF RFC 3339, Date and Time on the Internet: Timestamps, section 5.7 (the days in each month) and Appendix C (the leap year rule). https://www.rfc-editor.org/rfc/rfc3339",
    "U.S. Naval Observatory, Leap Years: the Gregorian leap year rule. https://aa.usno.navy.mil/faq/leap_years"
  ],
  "related": [
    "days-until-the-24th",
    "days-until-the-26th",
    "days-until",
    "days-from-today"
  ],
  "changelog": []
}
