Calculating in-game meeting times

Started by Delirium, April 24, 2006, 04:45:41 PM

Quote from: "John, in another thread"An example on how to calculate it is say I want to meet someone at Friday at 2:00 pm (it's currently Monday 10:30 pm). That's 3 days and 15 hours and 30 minutes.

To calculate it I do this:
minutes = (((3*24)+15)*60)+30 = 5250
IC hours = 5250/10 = 525
IC days = 525/9 = 58

Would it be possible to create a tool on the website that allows you to enter in either an RL date and recieve output that tells you what the time would be in-game, or vice versa?  I could see this being a very useful little tool to help get people together at the right times, as in-game dates are always the same, no matter what timezone anyone else is in.

How I envision it working is the player enters the RL time by days, hours, and minutes, or they enter the ingame date by day, month, and year.  

The tool would then return the IC date or the RL date, depending on what you were trying to convert.

For example, you want to hold an RPT 7 days, 2 hours, and 30 minutes from now, you enter that in and get an IC date to spread about.

Conversely, you want to find out when your character's birthday will fall, so you enter in the IC date, month, and year and get an RL date to work off of.

This would not only be great for RPTs and meetings, but for events that should fall on or around a certain IG date, such as festivals and so on.

I think it could be neat, if anyone had the time and inclination to write it up.

That was the idea when that time change was made way back when.

I bet it's already halfway coded and someone never got around to making a web UI and then just forgot about it.

I think Delirium's idea is a cool one as I've often wished we could use IC dates for publicizing events IC'ly. BUT...

This brings up something I've often pondered on.   How likely are illiterate people to keep track of the date, especially with so many days in a Zalanthan month?  I really wonder just how many of the common populace would know when a certain date is.  I'd love to hear other people's thoughts on this.
Quote from: J S BachIf it ain't baroque, don't fix it.

Probably the same way an illiterate person can memorize and perform a play.

I don't know because I've never experienced it, but I'm sure that a person's memory is going to pick up for the lack of written reminders.  Like perhaps we've made our brains lazy.  Also, I'm sure if they can use the Way, an average person can remember what date it is.

Just a thought.

I tend to have my characters celebrate their birthday on the first day of the year. This is mostly due to lazy parents ;)

some instances lend themselves to suspension of disbelief.  This is one of them.  If you must have an IC method of explaining this then mooch the one "Rome" used - keep track of the calendar by using something everyone can see, like a large wall and items to mark the days by.
- HK

except what happens when the game crashes and the calendar resets funny?

It doesn't do that anymore, Davien :)

Yeah, dude. Stop living in the past :P

I could possibly code a macromedia flash application that does this, but I would need a place to host it. Send me a PM if you have such a place, or are an imm/player interested in telling me just what kind of things this <worn on wrist>    zalanthan timetraveller's wrist-watch   should do.


I'll even put on toggleable music, for extended use: tiiiii-iiime is on my side... yes it is!!

If I go 'all the way', which I would like to do, the clock will be scaleable to any theoretical point in the past and theoretical moment in the future, even should Armageddon MUD not have/will not exist(ed) at those/that time(s). Man that was fun.

It will, to the hour, show where the moon is in the sky, which moon it is, and hell, I might get medieval on your hineys and toss in moon phases for fun. This will let you know (in the ancient ways of Sartakryn the astronomer) whether a coming night is going to be lit by two moons, one, partially lit, or completely dark.

I would like to know if there is any way of getting a hold of the actual 'names' of the years in each King's Age, because I think that would be a cool addition. Currently we are in the Year of 'Ruk's Defiance', year 26 of the 21st Age. I know (I'm pretty sure, rather) each year of each age has a seperate name. I'm more than willing to code these in as well. Once I get going, there's really nothing I can't add.

The only thing is, would a full-fledged time-traveller watch be appropriate for the general playerbase!? The moon stuff is kind of iffy, but if I were going to code one for just myself, moon-worshiping would definitely be included.

total.earth.minutes = ( ( ( earth.days * 24 ) + earth.hours ) * 60 ) + earth.minutes
In Game Hours = total.earth.minutes / 10
In Game Weeks = ( total.earth.minutes / ( 10 ) / 9 ) / 11 ) {reference for Ocandra, Terrin, Abid, Cingel, Nekrete, Waleuk, Yochem, Huegel, Dzeda, Barani, Detal, if current IC date is specified}

etc etc.

Toss me some clean equations ppl.

you could just have it be the "Day of the year" and not worry about the actual day of the week.

I mean, even in real life, no one cares what day of the week may 18th, 2008 is on.


and here I thought people could take a joke. gah!

-goes back to hunting Wolverines with his uncle in Alaska-

The day of the week tells you if it's "Terrin" or "Ocandra." If you do this Yang, you'll be my god.

Quote from: "Yang"I would like to know if there is any way of getting a hold of the actual 'names' of the years in each King's Age, because I think that would be a cool addition. Currently we are in the Year of 'Ruk's Defiance', year 26 of the 21st Age. I know (I'm pretty sure, rather) each year of each age has a seperate name. I'm more than willing to code these in as well. Once I get going, there's really nothing I can't add.

Jihae's Anger
Drov's Peace
Desert's Vengeance
Ruk's Slumber
Whira's Defiance
Dragon's Reverance
Vivadu's Agitation
King's Anger
Silt's Peace
Suk-krath's Vengeance
Lirathu's Slumber
Jihae's Defiance
Drov's Reverance
Desert's Agitation
Ruk's Anger
Whira's Peace
Dragon's Vengeance
Vivadu's Slumber
King's Defiance
Silt's Reverance
Suk-krath's Agitation
Lirathu's Anger
Jihae's Peace
Drov's Vengeance
Desert's Slumber
Ruk's Defiance
Whira's Reverance
Dragon's Agitation
Vivadu's Anger
King's Peace
Silt's Vengeance
Suk-krath's Slumber
Lirathu's Defiance
Jihae's Reverance
Drov's Agitation
Desert's Anger
Ruk's Peace
Whira's Vengeance
Dragon's Slumber
Vivadu's Defiance
King's Reverance
Silt's Agitation
Suk-krath's Anger
Lirathu's Peace
Jihae's Vengeance
Drov's Slumber
Desert's Defiance
Ruk's Reverance
Whira's Agitation
Dragon's Anger
Vivadu's Peace
King's Vengeance
Silt's Slumber
Suk-krath's Defiance
Lirathu's Reverance
Jihae's Agitation
Drov's Anger
Desert's Peace
Ruk's Vengeance
Whira's Slumber
Dragon's Defiance
Vivadu's Reverance
King's Agitation
Silt's Anger
Suk-krath's Peace
Lirathu's Vengeance
Jihae's Slumber
Drov's Defiance
Desert's Reverance
Ruk's Agitation
Whira's Anger
Dragon's Peace
Vivadu's Vengeance
King's Slumber
Silt's Defiance
Suk-krath's Reverance
Lirathu's Agitation

From AC's post here.
So if you're tired of the same old story
Oh, turn some pages. - "Roll with the Changes," REO Speedwagon

WARNING: LARGE CODE CHUNK AHEAD.

To find out what the current time is you can use the following JavaScript:
<SCRIPT LANGUAGE="JavaScript">
<!--
laterDate = new Date();
var baseline = new Date("April 29, 2006 17:30:30 GMT+10");
var currentICDay = 220;
var currentICHour = 0;
var currentICMonth = 1;
var ICDayName = new Array ("Ocandra", "Terrin", "Abid", "Cingel", "Nekrete", "Waleuk", "Yochem", "Huegel", "Dzeda", "Barani", "Detal");
var futureICDayNamePointer =  10;
var currentICYear = 26;
var currentICAge = 21;
var howLong;

var futureICDay;
var futureString = "";
var futureICHour;
var futureICMonth = currentICMonth;
var futureICYear = currentICYear;
futureICAge = currentICAge;
var difference;

difference = Math.floor(((laterDate-baseline)/(1000*60))/10);
futureICDay = Math.floor(difference/9);
futureICDayNamePointer =  futureICDayNamePointer+futureICDay;
futureICHour = difference - (futureICDay*9);
futureICDay += currentICDay;
futureICHour += currentICHour;

if(futureICHour > 8)
{
futureICDay++;
futureICHour = futureICHour - 9;
}

while(futureICDayNamePointer > 10)
{
futureICDayNamePointer = futureICDayNamePointer-11;
}

document.write("It is ");

switch(futureICHour)
{
case 0: document.write("before dawn "); break;
case 1: document.write("dawn "); break;
case 2: document.write("early morning "); break;
case 3: document.write("late morning "); break;
case 4: document.write("high sun "); break;
case 5: document.write("early afternoon "); break;
case 6: document.write("late afternoon "); break;
case 7: document.write("dusk "); break;
case 8: document.write("late at night "); break;
}

document.write("on ");
switch(futureICDayNamePointer)
{
case 0: document.write(ICDayName[futureICDayNamePointer]); break;
case 1: document.write(ICDayName[futureICDayNamePointer]); break;
case 2: document.write(ICDayName[futureICDayNamePointer]); break;
case 3: document.write(ICDayName[futureICDayNamePointer]); break;
case 4: document.write(ICDayName[futureICDayNamePointer]); break;
case 5: document.write(ICDayName[futureICDayNamePointer]); break;
case 6: document.write(ICDayName[futureICDayNamePointer]); break;
case 7: document.write(ICDayName[futureICDayNamePointer]); break;
case 8: document.write(ICDayName[futureICDayNamePointer]); break;
case 9: document.write(ICDayName[futureICDayNamePointer]); break;
case 10: document.write(ICDayName[futureICDayNamePointer]); break;
}

document.write(", the ");

while(futureICDay > 231)
{
futureICDay = futureICDay-231;
futureICMonth++;
}

document.write(futureICDay);
futureString += futureICDay;
howLong = futureString.length;
futureString = futureString.charAt(howLong-1);

switch(futureString)
{
case "0": document.write("th"); break;
case "1": document.write("st"); break;
case "2": document.write("nd"); break;
case "3": document.write("rd"); break;
case "4": document.write("th"); break;
case "5": document.write("th"); break;
case "6": document.write("th"); break;
case "7": document.write("th"); break;
case "8": document.write("th"); break;
case "9": document.write("th"); break;
}

while(futureICMonth > 3)
{
futureICMonth = futureICMonth-3;
futureICYear++;
}

switch(futureICMonth)
{
case 1: document.write(" day of the Descending Sun,<BR>In the Year of "); break;
case 2: document.write(" day of the Low Sun,<BR>In the Year of "); break;
case 3: document.write(" day of the Ascending Sun,<BR>In the Year of "); break;
}

while(futureICYear>77)
{
futureICYear = futureICYear-77;
futureICAge++;
}

switch(futureICYear)
{
case 1: document.write("Jihae's Anger"); break;
case 2: document.write("Drov's Peace"); break;
case 3: document.write("Desert's Vengeance"); break;
case 4: document.write("Ruk's Slumber"); break;
case 5: document.write("Whira's Defiance"); break;
case 6: document.write("Dragon's Reverance"); break;
case 7: document.write("Vivadu's Agitation"); break;
case 8: document.write("King's Anger"); break;
case 9: document.write("Silt's Peace"); break;
case 10: document.write("Suk-Krath's Vengeance"); break;
case 11: document.write("Lirathu's Slumber"); break;
case 12: document.write("Jihae's Defiance"); break;
case 13: document.write("Drov's Reverance"); break;
case 14: document.write("Desert's Agitation"); break;
case 15: document.write("Ruk's Anger"); break;
case 16: document.write("Whira's Peace"); break;
case 17: document.write("Dragon's Vengeance"); break;
case 18: document.write("Vivadu's Slumber"); break;
case 19: document.write("King's Defiance"); break;
case 20: document.write("Silt's Reverance"); break;
case 21: document.write("Suk-Krath's Agitation"); break;
case 22: document.write("Lirathu's Anger"); break;
case 23: document.write("Jihae's Peace"); break;
case 24: document.write("Drov's Vengeance"); break;
case 25: document.write("Desert's Slumber"); break;
case 26: document.write("Ruk's Defiance"); break;
case 27: document.write("Whira's Reverance"); break;
case 28: document.write("Dragon's Agitation"); break;
case 29: document.write("Vivadu's Anger"); break;
case 30: document.write("King's Peace"); break;
case 31: document.write("Silt's Vengeance"); break;
case 32: document.write("Suk-Krath's Slumber"); break;
case 33: document.write("Lirathu's Defiance"); break;
case 34: document.write("Jihae's Reverance"); break;
case 35: document.write("Drov's Agitation"); break;
case 36: document.write("Desert's Anger"); break;
case 37: document.write("Ruk's Peace"); break;
case 38: document.write("Whira's Vengeance"); break;
case 39: document.write("Dragon's Slumber"); break;
case 40: document.write("Vivadu's Defiance"); break;
case 41: document.write("King's Reverance"); break;
case 42: document.write("Silt's Agitation"); break;
case 43: document.write("Suk-Krath's Anger"); break;
case 44: document.write("Lirathu's Peace"); break;
case 45: document.write("Jihae's Vengeance"); break;
case 46: document.write("Drov's Slumber"); break;
case 47: document.write("Desert's Defiance"); break;
case 48: document.write("Ruk's Reverance"); break;
case 49: document.write("Whira's Agitation"); break;
case 50: document.write("Dragon's Anger"); break;
case 51: document.write("Vivadu's Peace"); break;
case 52: document.write("King's Vengeance"); break;
case 53: document.write("Silt's Slumber"); break;
case 54: document.write("Suk-Krath's Defiance"); break;
case 55: document.write("Lirathu's Reverance"); break;
case 56: document.write("Jihae's Agitation"); break;
case 57: document.write("Drov's Anger"); break;
case 58: document.write("Desert's Peace"); break;
case 59: document.write("Ruk's Vengeance"); break;
case 60: document.write("Whira's Slumber"); break;
case 61: document.write("Dragon's Defiance"); break;
case 62: document.write("Vivadu's Reverance"); break;
case 63: document.write("King's Agitation"); break;
case 64: document.write("Silt's Anger"); break;
case 65: document.write("Suk-krath's Peace"); break;
case 66: document.write("Lirathu's Vengeance"); break;
case 67: document.write("Jihae's Slumber"); break;
case 68: document.write("Drov's Defiance"); break;
case 69: document.write("Desert's Reverance"); break;
case 70: document.write("Ruk's Agitation"); break;
case 71: document.write("Whira's Anger"); break;
case 72: document.write("Dragon's Peace"); break;
case 73: document.write("Vivadu's Vengeance"); break;
case 74: document.write("King's Slumber"); break;
case 75: document.write("Silt's Defiance"); break;
case 76: document.write("Suk-Krath's Reverance"); break;
case 77: document.write("Lirathu's Agitation"); break;
}

document.write(", year "+futureICYear+" of the "+futureICAge);

futureString = ""+futureICAge;
howLong = futureString.length;
futureString = futureString.charAt(howLong-1);

switch(futureString)
{
case "0": document.write("th"); break;
case "1": document.write("st"); break;
case "2": document.write("nd"); break;
case "3": document.write("rd"); break;
case "4": document.write("th"); break;
case "5": document.write("th"); break;
case "6": document.write("th"); break;
case "7": document.write("th"); break;
case "8": document.write("th"); break;
case "9": document.write("th"); break;
}

document.write(" Age.");

//-->
</SCRIPT>

Although your time on your clock must be correct.

With some tinkering I can probably get it to tell future as well as past times. Hope that helps Yang.



Err.... What? I couldn't be bothered finding a host to put it up on so I just put it here.... sorry?

Anyway, a bit more tinkering and I think I've got future times right (previous times just don't work at all, such as a time in 2005). So as of this post the code above will work for future times. For anyone with too much time on their hands let me know if June 15, 2012 7:10 GMT+10 will be the first day of the 22nd Age ;)

According to my script it will be:
It is before dawn on Ocandra, the 1st day of the Descending Sun,
In the Year of Jihae's Anger, year 1 of the 22nd Age.


According to my script:

It is before dawn on Ocandra, the 1st day of the Descending Sun,
In the Year of Jihae's Anger, year 1 of the 1st Age.

Happened IRL on:
September 13, 1820 23:33:30 GMT+10

Somehow I don't think that's quite when it happened. But my script appears to work just fine for any time at all. Future or past, as long as it's after the 1st day pf the 1st month of the 1st year of the 1st Age. Now I just have to make it a bit more user friendly.

Quote from: "flurry"
From AC's post here.
Please give me my credit (which I totally don't deserve) because I am desperate for attention.

original post