04-28-2005
I'm probably just being stupid, but what am I doing wrong? Here is the code and the result I am getting out. Trying to pass in Julian Date of 112 to have it return 20050422...
#! /usr/bin/ksh
# Calendar date from Julian Day Number
julian2date()
{
#set -x
typeset tmpday=$(($1 - 1721119))
typeset centuries=$(( (4 * tmpday - 1) / 146097))
tmpday=$((tmpday + centuries - centuries/4))
typeset year=$(( (4 * tmpday - 1) / 1461))
tmpday=$((tmpday - (1461 * year) / 4))
typeset month=$(( (10 * tmpday - 5) / 306))
day=$((tmpday - (306 * month + 5) / 10))
month=$((month + 2))
year=$((year + month/12))
month=$((month % 12 + 1))
printf "%s %02d %02d" $year $month $day
}
julian2date 112
[U]RESULT:[/U]
/home/rsd9/xxgvlqr> test.ksh
-4711 -8 -15/home/rsd9/xxgvlqr>
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have a shell script which gets passed a parameter which is a combination of Year and Julian Date <YYYYj>. So April 11th, julian date is 101. So if I wanted April 11th for 2003 I would get the following value 2003101. How would I convert that in unix to be 20030411? I am using the korn shell. (3 Replies)
Discussion started by: lesstjm
3 Replies
2. Shell Programming and Scripting
hey all,
I was wondering if it was possible to get the julian date with the cal command.
I know that the "-j" option will display it, however, i need the Julian Date of a specific date, in number.
For example, the User would enter their age like
19800101 or YYYMMDD, like so. This info... (0 Replies)
Discussion started by: shan2on
0 Replies
3. UNIX for Dummies Questions & Answers
Hi,
Was using date +%Y%j to get current julian date. Can anyone let me know how can I get y'day's julin date. Thx
Did check FAQ but couldn't find anything.
Thanks. (3 Replies)
Discussion started by: er_ashu
3 Replies
4. Shell Programming and Scripting
I'm trying to put together a little script that will move some files to a directory, uncompress the file then delete the file when processing is complete.
The files are all named using julian date
2009072.Z
2009071.Z
2009070.Z
2009069.Z
2009068.Z
2009067.Z
2009066.Z
2009065.Z... (8 Replies)
Discussion started by: 1buckeye_fan
8 Replies
5. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
This function is given the day, month and year and returns the Julian date. The Julian date is the... (1 Reply)
Discussion started by: mgyeah
1 Replies
6. Shell Programming and Scripting
I want to know, what exactly this Julian Date Function is all about?
#!/usr/bin/ksh
#Script That notify the User Expiration in Servers
function juliandate {
day=$1
month=$2
year=$3
((standard_jd = day - 32075 + 1461 * (year + 4800 - (14 - month)/12)/4 + 367 * (month -... (3 Replies)
Discussion started by: baraghun
3 Replies
7. Shell Programming and Scripting
Hi , I need to convert date from YYYYMMDD to DD-MON-YYYY
e.g
20111214 to 14-Dec-2011
Please help. (17 Replies)
Discussion started by: ady_koolz
17 Replies
8. Shell Programming and Scripting
Hi, I need help to convert the filenames of my 9-year daily files (1999-2007) from a julian day to yyyy-mm-dd format. my original files are patterned likes the ones below.
1999001.txt
1999002.txt
1999003.txt
1999004.txt ...
1999365.txt
desired output:
19990101.txt
19990102.txt... (3 Replies)
Discussion started by: ida1215
3 Replies
9. Shell Programming and Scripting
All, I am facing an issue with julian date conversion..
current command:
echo `date +%Y%j` `cat -n /home/user/FILENAME.dat |awk '{printf "%08s", $2}'`
The above command is working good. But in the above bolded part, it is converting system date to julian date. However I want to... (8 Replies)
Discussion started by: cmaroju
8 Replies
10. Shell Programming and Scripting
Need assistance . Below code gets me julian date . I wanted to add hour/24 to julian date and output it. Is there a way to do the calculation?
use Time::Local;
use POSIX qw(strftime);
my $time=timelocal(1,2,3,9,11,2013);
printf strftime "%j", localtime($time);
343 (3 Replies)
Discussion started by: ajayram_arya
3 Replies
CAL(1) BSD General Commands Manual CAL(1)
NAME
cal, ncal -- displays a calendar and the date of Easter
SYNOPSIS
cal [-3hjy] [-A number] [-B number] [[month] year]
cal [-3hj] [-A number] [-B number] -m month [year]
ncal [-3hjJpwy] [-A number] [-B number] [-s country_code] [[month] year]
ncal [-3hJeo] [-A number] [-B number] [year]
ncal [-CN] [-H yyyy-mm-dd] [-d yyyy-mm]
DESCRIPTION
The cal utility displays a simple calendar in traditional format and ncal offers an alternative layout, more options and the date of Easter.
The new format is a little cramped but it makes a year fit on a 25x80 terminal. If arguments are not specified, the current month is dis-
played.
The options are as follows:
-h Turns off highlighting of today.
-J Display Julian Calendar, if combined with the -e option, display date of Easter according to the Julian Calendar.
-e Display date of Easter (for western churches).
-j Display Julian days (days one-based, numbered from January 1).
-m month
Display the specified month. If month is specified as a decimal number, it may be followed by the letter 'f' or 'p' to indicate the
following or preceding month of that number, respectively.
-o Display date of Orthodox Easter (Greek and Russian Orthodox Churches).
-p Print the country codes and switching days from Julian to Gregorian Calendar as they are assumed by ncal. The country code as deter-
mined from the local environment is marked with an asterisk.
-s country_code
Assume the switch from Julian to Gregorian Calendar at the date associated with the country_code. If not specified, ncal tries to
guess the switch date from the local environment or falls back to September 2, 1752. This was when Great Britain and her colonies
switched to the Gregorian Calendar.
-w Print the number of the week below each week column.
-y Display a calendar for the specified year.
-3 Display the previous, current and next month surrounding today.
-A number
Display the number of months after the current month.
-B number
Display the number of months before the current month.
-C Switch to cal mode.
-N Switch to ncal mode.
-d yyyy-mm
Use yyyy-mm as the current date (for debugging of date selection).
-H yyyy-mm-dd
Use yyyy-mm-dd as the current date (for debugging of highlighting).
A single parameter specifies the year (1-9999) to be displayed; note the year must be fully specified: ``cal 89'' will not display a calendar
for 1989. Two parameters denote the month and year; the month is either a number between 1 and 12, or a full or abbreviated name as speci-
fied by the current locale. Month and year default to those of the current system clock and time zone (so ``cal -m 8'' will display a calen-
dar for the month of August in the current year).
Not all options can be used together. For example ``-3 -A 2 -B 3 -y -m 7'' would mean: show me the three months around the seventh month,
three before that, two after that and the whole year. ncal will warn about these combinations.
A year starts on January 1.
Highlighting of dates is disabled if stdout is not a tty.
SEE ALSO
calendar(3), strftime(3)
HISTORY
A cal command appeared in Version 5 AT&T UNIX. The ncal command appeared in FreeBSD 2.2.6.
AUTHORS
The ncal command and manual were written by Wolfgang Helbig <helbig@FreeBSD.org>.
BUGS
The assignment of Julian-Gregorian switching dates to country codes is historically naive for many countries.
Not all options are compatible and using them in different orders will give varying results.
BSD
March 14, 2009 BSD