A printer, comprising: a main unit that is configured to carry out a printing operation; an expendable supply that is replaceably installed in the main unit and is used at the printing operation of the main unit; a detector that is configured to detect at least one of a power-on operation of the printer, a resume from an energy-saving mode of the printer and an installation of a replacement expandable supply in the main unit; a determiner that is configured to determine whether or not a recommended limit of the expendable supply has passed, based on a production date or a usage start date of the expendable supply, the recommended limit set before a usable limit of the expendable supply, and an elapsed date from the production date or the usage start date; a warning generator that is configured to generate a warning for notifying that the usable limit will come soon, when it is determined by the determiner that the recommended limit of the expendable supply has already passed; and a memory storage that is configured to store a warning cycle including a first time period and a second time period after the first time period, and a timing of a last warning generation after the recommended limit, wherein, upon determination by the determiner that the recommended limit has passed and upon detection by the detector of the power-on operation, the resume from the energy-saving mode, or the installation of the replacement expandable supply, the warning generator is configured to determine whether to generate a warning, wherein, in determining whether to generate a warning, the warning generator is configured to: determine to generate a warning upon the timing of the last warning generation being not yet stored in the memory storage at the detection by the detector, or upon the timing of the last warning generation included in the first time period being already stored in the memory storage at the detection by the detector and the first time period having elapsed at the detection by the detector, and determine not to generate a warning upon the timing of the last warning generation included in the first time period being already stored in the memory storage at the detection by the detector and the first time period having not elapsed at the detection by the detector, and wherein the warning generator is configured: to generate a warning upon determination to generate a warning; and not to generate a warning upon determination not to generate a warning. a main unit that is configured to carry out a printing operation; an expendable supply that is replaceably installed in the main unit and is used at the printing operation of the main unit; a detector that is configured to detect at least one of a power-on operation of the printer, a resume from an energy-saving mode of the printer and an installation of a replacement expandable supply in the main unit; a determiner that is configured to determine whether or not a recommended limit of the expendable supply has passed, based on a production date or a usage start date of the expendable supply, the recommended limit set before a usable limit of the expendable supply, and an elapsed date from the production date or the usage start date; a warning generator that is configured to generate a warning for notifying that the usable limit will come soon, when it is determined by the determiner that the recommended limit of the expendable supply has already passed; and a memory storage that is configured to store a warning cycle including a first time period and a second time period after the first time period, and a timing of a last warning generation after the recommended limit, wherein, upon determination by the determiner that the recommended limit has passed and upon detection by the detector of the power-on operation, the resume from the energy-saving mode, or the installation of the replacement expandable supply, the warning generator is configured to determine whether to generate a warning, wherein, in determining whether to generate a warning, the warning generator is configured to: determine to generate a warning upon the timing of the last warning generation being not yet stored in the memory storage at the detection by the detector, or upon the timing of the last warning generation included in the first time period being already stored in the memory storage at the detection by the detector and the first time period having elapsed at the detection by the detector, and determine not to generate a warning upon the timing of the last warning generation included in the first time period being already stored in the memory storage at the detection by the detector and the first time period having not elapsed at the detection by the detector, and determine to generate a warning upon the timing of the last warning generation being not yet stored in the memory storage at the detection by the detector, or upon the timing of the last warning generation included in the first time period being already stored in the memory storage at the detection by the detector and the first time period having elapsed at the detection by the detector, and determine not to generate a warning upon the timing of the last warning generation included in the first time period being already stored in the memory storage at the detection by the detector and the first time period having not elapsed at the detection by the detector, and wherein the warning generator is configured: to generate a warning upon determination to generate a warning; and not to generate a warning upon determination not to generate a warning.