They use big numbers in the shows, but when was the stardate zero?
How do stardates work? I mean how it it incremented? I guess if
I knew this, I could sorta work it backwards.
thanks
___________________________________________________________________________
***** * * From the e-net desk of: Rick Colombo CD/DCD/DSG * *
* ** * Fermi Nat'l Acc'l Lab 708-840-8225 Fermilab * * *
*** * * * P.O. Box 500 MS 369 Feynman Computer Center ***** *
* * ** Batavia, Ill. USA 60510 Col...@fnal.fnal.gov * * *****
* Sure to get `Flamed' if I didn't cross all my i's and dot all my t's ;-)
>They use big numbers in the shows, but when was the stardate zero?
>How do stardates work? I mean how it it incremented? I guess if
>I knew this, I could sorta work it backwards.
It is a rather silly system. The latest stardate is something like 45xxx.
The "4" refers to the "Next Generation" tv series. The "5" is the season
number, and the last three digits are arbitrarily incremented from show to
show. (as well as the "point x..." after it).
So is there any real cosmic significance or time system based on a
scientific measurement? No. It all started when Roddenberry was slaving
away to get the original series going. Nobody had time back then to
work out *all* the little details. The stardate just sounds neat, I guess.
Jyri Palm
pa...@rpi.edu
I watched an episode (I forget which one and I forget the situation), but
I calculated that each increment was equivalent to eight hours. Picard
gave a stardate and said something like "one day later" and then gave a
stardate three increments higher. Or he gave a stardate 45xxx.x then said
one hour later the stardate was 45xxx.x+1. I forget the exact situation,
but eight hours per increment sticks into my mind. I actually never
calculated this, but with the above information on the earlier post,
it actually does work out just about right.
>They use big numbers in the shows, but when was the stardate zero?
Dunno.
>How do stardates work? I mean how it it incremented? I guess if
>I knew this, I could sorta work it backwards.
Here's some C-source to a stardate-calculator program, posted a while back
by Jay Windley...
Hope it helps.
zxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzx
Luis Fernandes <lfer...@ee.ryerson.ca>
-Friendly Neighbourhood X Wizard's Apprentice
zxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzx
--cut-here--
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# README
# stardate.1
# stardate.c
# This archive created: Thu Jul 30 18:29:45 1992
export PATH; PATH=/bin:$PATH
if test -f 'README'
then
echo shar: will not over-write existing file "'README'"
else
cat << \SHAR_EOF > 'README'
There is only the one C source file, so compile it with your favorite
C compiler. I've only tested it using GCC in -traditional mode, so I
don't guarantee it will compile on all systems without modification.
I have used Unix time manipulation tools, but as far as I've seen
these tools (or equivalents) are available in most non-Unix C
implementations.
The usual disclaimers apply -- if this program hoses your machine it's
your fault.
I don't plan to "officially" maintain this program. In other words,
send bug reports to
but don't expect me to jump right on them.
There is an nroff-style user manual as well, just to explain the
options. Those bereft of nroff should still be able to glean the
necessary information.
Share and Enjoy.
SHAR_EOF
fi # end of overwriting check
if test -f 'stardate.1'
then
echo shar: will not over-write existing file "'stardate.1'"
else
cat << \SHAR_EOF > 'stardate.1'
.TH STARDATE 1L "Starfleet Technical Support"
.SH NAME
stardate \- display current Stardate
.SH SYNOPSIS
.B stardate
[ \-d\fIn\fR ]
.SH DESCRIPTION
.I Stardate
computes the current Stardate using the algorithm specified by
Starfleet Standard NC\-C34/32446.7 and displays it on the default
logical output node. The
.B -d
option specifies that
.I n
digits of precision are to be displayed after
the decimal point. The
minimum (default) value for this parameter is is 1 and the maximum is 7.
.SH DIAGNOSTICS
If the option or its argument is incorrect, a soft exception occurs
and the program is terminated. This program responds to sanity check
pulses generated during Level 4 diagnostic passes.
.SH CAVEATS
.I Stardate
is optimized for use aboard
.I Galaxy
and
.I Excelsior
class starships, and at all Starbases servicing these classes.
The computed Stardate is not guaranteed to be
compatible with planetary chronolog systems, and no support for
conversion has been provided.
.SH AUTHOR
.br
.nf
Jay Windley
Starfleet Computational Systems Support Command \- Galaxy Class
Utopia Planitia Fleet Yards, MARS
jwin...@asylum.utah.edu
SHAR_EOF
fi # end of overwriting check
if test -f 'stardate.c'
then
echo shar: will not over-write existing file "'stardate.c'"
else
cat << \SHAR_EOF > 'stardate.c'
/*************************************************************
* File: stardate.c
* Author: Jay Windley
* Created: 1 Jan 92
* Copyright: (c) 1 Jan 92 by Jay Windley
* Description: prints the current stardate to stdout
*
*************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <time.h>
#define FIT(x,y) while((x)<0)(x)+=(y);while((x)>(y))(x)-=(y)
#define MAXPRECISION 7
#define OUTPUTFORMAT "%%%03d.%df"
/*---------------------------------------------------------------------*
*TAG ( julian_day );
*---------------------------------------------------------------------*
* Returns the New Epoch Julian Day for the given Gregorian calendar
* day.
*/
double julian_day (month, day, year)
int month, day, year;
{
int loc_month;
int loc_year;
int a, b, c, d;
loc_month = month;
loc_year = year;
/* correct for March-based B.C. year */
if (year < 0) loc_year ++;
if (month < 3) {
loc_month = month + 12;
loc_year --;
}
/* set up A and B for Julian to Gregorian calendar change */
if (year < 1582) b = 0;
else if (year == 1582) {
if (month < 10) b = 0;
else if (month == 10) {
if (day < 15) b = 0;
else {
a = loc_year / 100;
b = 2 - a + (a/4);
}
} else {
a = loc_year / 100;
b = 2 - a + (a/4);
}
} else {
a = loc_year / 100;
b = 2 - a + (a/4); /* century is set up */
}
/* fudge for year and month */
c = (int) (365.25 * loc_year) - 694025;
d = (int) (30.6001 * (loc_month + 1));
return (double) (b + c + d + day) - .5;
}
/*---------------------------------------------------------------------*
*TAG ( sidereal );
*---------------------------------------------------------------------*
* Returns Greenwich Mean Sidereal Time for the given Greenwich Mean
* Solar Time on the given NE Julian Day.
*/
double sidereal (gmt, jd, gyear)
double gmt; /* Greenwich Mean Time, decimal */
double jd; /* Julian Day */
int gyear; /* calendar year */
{
register double dayfudge, yrfudge, jhund;
double initjd, hourfudge, time0, lst;
/* find Julian century at start of year */
initjd = julian_day (1, 0, gyear);
jhund = initjd / 36525.0;
/* apply polynomial correction */
dayfudge = 6.6460656 + (0.051262 + (jhund * 0.00002581)) * jhund;
yrfudge = 2400.0 * (jhund - ( (double) (gyear - 1900) / 100));
hourfudge = 24.0 - dayfudge - yrfudge;
time0 = (jd - initjd) * 0.0657098 - hourfudge;
/* adjust to modulo 24 hours */
lst = (gmt * 1.002737908) + time0;
FIT (lst, 24.0);
return lst;
}
/*---------------------------------------------------------------------*
*TAG ( main );
*---------------------------------------------------------------------*
* Behaves as expected.
*/
void main (argc, argv)
int argc;
char *argv[];
{
int jd, precis;
double gmt, gmst;
time_t t;
struct tm *tm;
char buf[16];
char fmt[16];
if (argc > 1) {
if (strncmp (argv[1], "-d", 2) == 0) {
if (sscanf (&argv[1][2], "%d", &precis) == 0) {
fprintf (stderr, "%s: invalid precision specification\n", argv[0]);
exit (1);
}
if (precis < 1) precis = 1;
if (precis > MAXPRECISION) precis = MAXPRECISION;
} else {
fprintf (stderr, "%s: invalid option\n", argv[0]);
exit (1);
}
} else precis = 1;
t = time (NULL);
tm = gmtime (&t);
jd = julian_day (tm->tm_mon + 1, tm->tm_mday, tm->tm_year + 1900);
gmt = (double) tm->tm_hour +
tm->tm_min / 60.0 +
tm->tm_sec / 3600.0;
gmst = sidereal (gmt, (double) jd, tm->tm_year);
sprintf (fmt, OUTPUTFORMAT, precis + 6, precis);
sprintf (buf, fmt, (double) jd + gmst / 24.0);
puts (buf);
}
SHAR_EOF
fi # end of overwriting check
# End of shell archive
exit 0
I posted earlier that I watched an epissode (I forget which one and I
forget the situation) in which I figured that each increment was about
eight hours. I didn't think about it then, but that would collaborate
with evidence that someone else posted that ST:TNG uses 45xxx where 5
represents which season the show is in. Calculating it out, it does
work that each increment is about eight hours, though I haven't figured
it exactly. Thus, they use some sort of metric system, which would make
sense since there is no day or night in space. Then this would mean that
stardate 0.0 is aproximately the date that NCC 1701-A was commissioned,
or something like that.
If this is true, then Captain Kirk would have had to use stardates in the neg-
ative numbers in TOS. Sorry, but I personally think that there is no rhyme nor
reason for how stardates work.
--Nick
I remember reading somewhere (yeah, yeah; probably non-canon) that Stardate
0.0 corresponded to January 1, 2001.
--
"Dammit Jim, I'm a free man, not a number!"
----------------------------------------------------------------------
This is a copy of the mnemonic signature virus. Remember to copy it into
your .signature file later. Join the fun!
Obviously this doesn't generate Stardates which adhere to the actual
standard. Stardates "began" in 2364 AD, so today's Stardates would
have to be negative in order to comply. Further, Stardates are
supposed to encode some relativistic compensation factor in an unknown
way. Since we don't know how this is done, this program doesn't do
it.
Here are the assumptions I made for this program:
1. Stardate 0.0 is midnight, 1 January 1900.
2. Stardates increment one integral digit per earth solar day.
3. Stardates increment fractionally according to the current Greenwich
Mean Sidereal Time; the fractional Stardate represents the elapsed
fraction of an earth sidereal day.
Those of you up on your astronomy might realize that this algorithm
would make certain stardates impossible since sidereal and solar
computations don't readily mix. I wanted to use the sidereal
computations to make my Stardate a little more exotic than just
reformatting the system's calendar and clock.
This program is also FTP'able from ftp.cis.ksu.edu in /pub/startrek.
Thanks to whoever built the shell archive -- we don't have the tools
here to do that easily, so it goes out as a tar(1) archive.
--------------------------------+---------------------------------------
Jay Windley | jwin...@asylum.cs.utah.edu
Department of Computer Science +---------------------------------------
Univ. of Utah, Salt Lake City | "Okay, NOW I'm worried." -- Batman
Data mentions in TNG "The Neutral Zone" that the base year for
Stardate computation is 2364 AD.
>How do stardates work? I mean how it it incremented? I guess if
>I knew this, I could sorta work it backwards.
I'm working on an FAQL for this one. The easy answer is that there is
no rhyme or reason to how they're incremented. TOS is fairly random,
while TNG follows a scheme geared not to the fictional premise but to
the production schedule.
Hmmmm, that seems to correspond exactly with my earlier post. I stated
that I had watched an episode one time and figured out through various
time frame sequences that each increment corresponds to about eight
hours. And this also agreed with a post stating that with the stardate
45xxx, the 4 represented ST:TNG, the 5 represented the season, and the
xxx represented the time within the season. Thus, if this is the case,
then each incrementwould correspond to about eight hours, though I
haven't figured it out exactly, and that stardate 0.0, going on the
assumption that the above is true, is about one hundred years earlier,
or, in other words, circa 2360, which I said earlier would be the
approximate date that the original enterprise was commissioned.
Thus, anyone who disagrees, well, there seems to be increasingly more
evidence that agrees with my opinion, though I am certainly open for
criticism.
No, Data mentions that the current date in the Earth standard is 2364.
It also sounds very reasonable that the calendar/clock of a large
galactic federation would not be based on the movements of the satellites
in one particular planetary system. (i.e. Days, Months, Years). It also makes
sense to have a mesure of marking time that relates more simply to
the number system used than all this dd/mm/yy or whatever. (This relates
to an old thread in alt.folklore.science).
Of course, given that the 1st number in the stardate supposedly stands
for "the twenty FOURTH century", there's still a bit of cultural bias
involved (as there is in the fact that they use base 10 numbers. I think
the Klingons in "The Undiscovered Country" had a point about the
homosapien bias of the Federation.
RB
>col...@bronco.fnal.gov writes:
>>
>>They use big numbers in the shows, but when was the stardate zero?
>Data mentions in TNG "The Neutral Zone" that the base year for
>Stardate computation is 2364 AD.
*WRONG!*
bzzt! Data says when someone asks what year is it he says
"By your calendar? 2364AD."
He made no such comment about baseyears for stardate computations
at all.
>>How do stardates work? I mean how it it incremented? I guess if
>>I knew this, I could sorta work it backwards.
>I'm working on an FAQL for this one. The easy answer is that there is
>no rhyme or reason to how they're incremented. TOS is fairly random,
>while TNG follows a scheme geared not to the fictional premise but to
>the production schedule.
>--------------------------------+---------------------------------------
>Jay Windley | jwin...@asylum.cs.utah.edu
>Department of Computer Science +---------------------------------------
>Univ. of Utah, Salt Lake City | "Okay, NOW I'm worried." -- Batman
-richard (GA)
--
-------------------------------------------------------------------------------
Richard A. Muirden, System Administator, Wesley College & Tintern C.E.G.G.S :)
E-Mail: r...@lionet.wesley.OZ.AU, s89...@minyos.xx.rmit.OZ.AU (when I study)
----------------- Fanatic of Shostakovich and "Star Trek" ---------------------
Gentlebeings! Surely you misunderstand the situation... Just because
there was history before the common era (that is, 0 A.D.) doesn't mean
we use negative dates, per se, to denote them. You've no doubt seen any
number of references to dates being thus-and-such B.C., no?
Well, then, obviously we ought to be using the Before Stardates system
to indicate what year we are in now. I mean, there is a definite poetic
justice (when you consider the rather turgid discussions about what
warp speed really means and all that jazz) in using the B.S. system, no?
<insert very large wry grin here>
John Atwood
---
| From the productions of Twentieth Century Vole! 1992 (c)opyright ZtF Press
---
Just to nit-pick a little here...
There was no '0 AD' year.
><insert very large wry grin here>
Seconded, with interest.
>John Atwood
--
Capt. Gym Z. Quirk (Known to some as Taki Kogoma) tko...@triton.unm.edu
I'll get a life when someone demonstrates that it would be superior to
what I have now...
1. Start with your age.
2. Add the number of fingers on one hand.
3. Subtract the number of ears you have.
4. Add the number that rhymes with "fine."
5. Subtract your age at your next birthday.
Put the number you just got on the line below to find todays stardate:
34___
So, now we can all rest easy; the case is solved :^> :^> :^>
1) "Jump to your left."
2) "Bring your knees in tight."
3) "It's the pelvic thrust..."
Watch Geordi try to figure this out! (Apologies to THE ROCKY HORROR
PICTURE SHOW.)
YEAR-MONTH-DAY-HOUR
19920813.855