{
  "id": "days-until-new-years-eve",
  "version": "00f2823f7e64",
  "status": "published",
  "name": "Days Until New Year’s Eve",
  "question": "Days until New Year’s Eve",
  "summary": "Counts the days from today, or any date you choose, to the next New Year’s Eve, with its date and day of the week.",
  "category": "days",
  "subcategory": "countdowns",
  "url": "https://www.acalculator.org/days/days-until-new-years-eve",
  "markdown": "https://www.acalculator.org/days/days-until-new-years-eve.md",
  "kind": "function",
  "method": "Find the first date of New Year’s Eve on or after the start date, then count the days from the start date to it.",
  "assumptions": [
    "New Year’s Eve is December 31 every year.",
    "Start dates from January 1, 1900 to December 31, 2400 work, because the date field accepts that range.",
    "The start date itself is not counted: from the day before, the count is 1; on the day itself, it is 0.",
    "Dates are calendar days with no time of day, so a time zone or a daylight-saving change never adds or loses a day."
  ],
  "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 New Year’s Eve",
      "description": "Whole days from the start date to the next New Year’s Eve; 0 on the day itself.",
      "format": "integer"
    },
    "date": {
      "label": "Date",
      "description": "The next date of New Year’s Eve on or after the start date.",
      "format": "date-long"
    },
    "weekday": {
      "label": "Day of the week",
      "description": "The weekday of that date.",
      "format": "text"
    },
    "weeks": {
      "label": "In weeks",
      "description": "The same number of days in weeks and days.",
      "format": "text"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "from": "2026-09-29"
    },
    "outputs": {
      "days": 93,
      "date": "2026-12-31",
      "weekday": "Thursday",
      "weeks": "13 weeks and 2 days"
    },
    "text": "From September 29, 2026, there are 93 days until New Year’s Eve on Thursday, December 31, 2026."
  },
  "examples": [
    {
      "given": {
        "from": "2026-01-01"
      },
      "expect": {
        "date": "2026-12-31",
        "days": 364
      },
      "source": "the rule written again in Python 3 (datetime); docs/progress/WP-43.md"
    },
    {
      "given": {
        "from": "2027-01-01"
      },
      "expect": {
        "date": "2027-12-31",
        "days": 364
      },
      "source": "the rule written again in Python 3 (datetime); docs/progress/WP-43.md"
    }
  ],
  "sources": [
    "the rule written again in Python 3 (datetime); docs/progress/WP-43.md"
  ],
  "related": [
    "days-until-new-year",
    "days-until-groundhog-day",
    "days-until-valentines-day",
    "days-until-mardi-gras",
    "days-until-lunar-new-year",
    "days-between-dates"
  ],
  "changelog": []
}
