- Home /
Javascript beginner here: how do I implement time such as hours and days?
So I'm making an event driven game (at least I think that's what they call the contrary of a "real-time" game), and I want to make days pass, along with the hours on each day. Suppose I click on a button (i.e.: sleep) and time passes by 8 hours, making the hours go forward by 8, and passing by the midnight, the day also changes. I made a simple code that permits the hours go by, and the days go by each 24 hours. The problem is that if I add more hours, the timer resets to 0, so I lose the extra hours. So, using the "sleep button" example, let's say it's currently 22h, and I click the sleep button which should advance the game by 8 hours. The problem is that when it passes midnight, the timer resets to 0. How can I add those lost 6h? Here's the code I wrote:
var currentHour : int = 0;
var currentDay : int = 1;
var currentMonth : int = 1;
var hoursPerDay : int = 24;
var daysPerMonth : int = 10;
var monthCheck : boolean;
function Update () {
if (currentHour >= hoursPerDay)
{
currentHour = 0;
currentDay += 1;
}
}
Answer by getyour411 · Mar 12, 2014 at 12:41 AM
set currentHour = currentHour - hoursPerDay on waking up
Using your example, it's 10:00pm and your player says I want to sleep for 8 hours Your method looks at the the current time and determines it will cross the day boundary with a remainder of 6, then sets currentHour to 6
Answer by Eric5h5 · Mar 12, 2014 at 10:43 AM
It would be a lot simpler just to use DateTime, which has all this stuff done for you.
var time = new System.DateTime();
time = time.AddHours (8);
It would definitely, but I'll probably want to change the scale of time (example: make months have 10 days). Can you do that with DateTime?
Your answer
Follow this Question
Related Questions
How Would I Change This To Read Within A Time Range? 1 Answer
Digital clock 1 Answer
Unity3d School 1 Answer
Can I detect when the iOS system clock has been changed 0 Answers
Minutes and Seconds in a text 1 Answer