i done some modifications for considering holidays also(i.e local holiday).
also you can get nth working day from given day.
if holiday list is stored in table, you can build hash table on it instead of array of holiday. hash table will give lots of performance gain also
Code:
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define OFORMAT "%Y-%m-%d"
//char holidy_list[][12]={"01-Jan-2004","03-Jan-2004","04-Jan-2004","10-Jan-2004","11-Jan-2004","17-Jan-2004","18-Jan-2004"};
char holidy_list[][12]={"2004-01-01","2004-01-03","2004-01-04","2004-01-10","2004-01-11","2004-01-17","2004-01-18"};
int main(void)
{
struct tm xmas, *tm1;
time_t tt;
int flg=0,i,found=0;
char date[] = "2003-12-31";
char buf[12];
int no_of_days =1; // nth working day
int count =0;
if (strptime(date, "%Y-%m-%d", &xmas) == NULL)
{
printf("strptime() failed.\n");
exit(1);
}
tt = mktime(&xmas);
tm1 = localtime(&tt);
strftime(buf,sizeof(buf), OFORMAT, tm1);
printf("\nOld Date is <%s>\n",buf);
for(;;)
{
tt= tt-86400;
tm1 = localtime(&tt);
strftime(buf,sizeof(buf), OFORMAT, tm1);
//printf("\nbuf<%s> count<%d>",buf,count);
found=0;
if (tm1->tm_wday==0 || tm1->tm_wday ==6)
{
continue;
}
if(HashGet(buf))
{ found = 1;}
if(found ==0)
{
count ++;
if (count >= no_of_days) break;
}
//printf("\nbuf<%s> hldlst<%s> count<%d>",buf,holidy_list[i],count);
}
for( i = 0; buf[ i ]; i++)
buf[ i ] = toupper( buf[ i ] );
printf( "\nNew Date is <%s>\n",buf);
}
int HashGet(char buf[])
{
int i;
for(i=0;i< (sizeof(holidy_list)/sizeof("30-DEC-2008"));i++)
{
if (strncasecmp(holidy_list[i],buf,sizeof(buf))==0)
{ return 1; break;}
}
return 0;
}
Hi ,
I am relatively new to unix...
Can u pls help me out to find out if the first day of the month is a working day ie from (Monday to Friday)...using Date and If clause in Korn shell..
This is very urgent.
Thanks for ur help... (7 Replies)
Hello guys it´s a pleasure to type with the unix community...I´m new in shell script and I need to insert into a #!/ksh a statment that will check if a file that I´ll receive from another script is arriving in the first working day of each month:
let´s say that I´ll reveive the following files... (1 Reply)
Hi
I need a script to get "Last working day of the month". I will pass the month and year as parameters and i need to get the last working date.
Ex
for June 2008 the last working day is 30th its monday.
for August 2008 the last working day is 29th and it is Friday.
ie the last working... (6 Replies)
Hi,
I want a script(ksh) to see if today is the last working day(Mon-Fri) of the month. If it is the last working day I need to print current date, else I need the last working day of previous month. Thanks in advance. (1 Reply)
Hi All,
I need to find the previous month last day minus one day, using shell script. Can you guys help me to do this.
My Requirment is as below:
Input for me will be 2000909(YYYYMM)
I need the previous months last day minus 1 day timestamp. That is i need 2000908 months last day minus ... (3 Replies)
Hi,
How to find the first working day of month ?
My requirement is, I need to call the function only if today is first working day of month. I could find out one function which finds last working day in month in this forum. Can anyone pls let me know for first working day. Thanks.
for... (10 Replies)
I have a business requirement in my project where I need to calculate the 12th working day of every month. Can any please tell me the solution to my problem.
Thanks in advance (7 Replies)
Hello Guys,
I have a questions regarding running a shell script every second working day each month.
I have no clue how solve this problem :wall:.
Important is that it has to be the second working (Mo-Fr).
Example: If 1st and 2nd Days of month are Sat and Sun the script must run on 4th day... (5 Replies)
Hi,
I would like to calculate 1st working/Business day of each month.
Exp:
1st -Oct-2011 is Saturday--- Non Business Day
So the Next Working Day would be 3-Oct-2011
I need a shell script to calculate the month first business date. (3 Replies)
I am unable to get this KSH script to work. Can someone help. I've been told this should work with KSH93. Which I think I have on Solaris 10.
If I do a grep -i version /usr/dt/bin/dtksh I get
@(#)Version M-12/28/93d
@(#)Version 12/28/93
@(#)Version M-12/28/93
This is correct for... (5 Replies)
Discussion started by: thibodc
5 Replies
LEARN ABOUT PHP
getdate
GETDATE(3) 1 GETDATE(3)getdate - Get date/time information
SYNOPSIS
array getdate ([int $timestamp = time()])
DESCRIPTION
Returns an associative array containing the date information of the $timestamp, or the current local time if no $timestamp is given.
PARAMETERS
o $timestamp
- The optional $timestamp parameter is an integer Unix timestamp that defaults to the current local time if a $timestamp is not
given. In other words, it defaults to the value of time(3).
RETURN VALUES
Returns an associative array of information related to the $timestamp. Elements from the returned associative array are as follows:
Key elements of the returned associative array
+----------+--------------------------------------+---+
| Key | | |
| | | |
| | Description | |
| | | |
| | Example returned values | |
| | | |
+----------+--------------------------------------+---+
| | | |
|"seconds" | | |
| | | |
| | Numeric representation of seconds | |
| | | |
| | | |
| | 0 to 59 | |
| | | |
| | | |
|"minutes" | | |
| | | |
| | Numeric representation of minutes | |
| | | |
| | | |
| | 0 to 59 | |
| | | |
| | | |
| "hours" | | |
| | | |
| | Numeric representation of hours | |
| | | |
| | | |
| | 0 to 23 | |
| | | |
| | | |
| "mday" | | |
| | | |
| | Numeric representation of the day of | |
| | the month | |
| | | |
| | | |
| | 1 to 31 | |
| | | |
| | | |
| "wday" | | |
| | | |
| | Numeric representation of the day of | |
| | the week | |
| | | |
| | | |
| | 0 (for Sunday) through 6 (for Satur- | |
| | day) | |
| | | |
| | | |
| "mon" | | |
| | | |
| | Numeric representation of a month | |
| | | |
| | | |
| | 1 through 12 | |
| | | |
| | | |
| "year" | | |
| | | |
| | A full numeric representation of a | |
| | year, 4 digits | |
| | | |
| | Examples: 1999 or 2003 | |
| | | |
| | | |
| "yday" | | |
| | | |
| | Numeric representation of the day of | |
| | the year | |
| | | |
| | | |
| | 0 through 365 | |
| | | |
| | | |
|"weekday" | | |
| | | |
| | A full textual representation of the | |
| | day of the week | |
| | | |
| | | |
| | Sunday through Saturday | |
| | | |
| | | |
| "month" | | |
| | | |
| | A full textual representation of a | |
| | month, such as January or March | |
| | | |
| | | |
| | January through December | |
| | | |
| | | |
| 0 | | |
| | | |
| | Seconds since the Unix Epoch, simi- | |
| | lar to the values returned by | |
| | time(3) and used by date(3). | |
| | | |
| | System Dependent, typically | |
| | -2147483648 through 2147483647. | |
| | | |
+----------+--------------------------------------+---+
EXAMPLES
Example #1
getdate(3) example
<?php
$today = getdate();
print_r($today);
?>
The above example will output something similar to:
Array
(
[seconds] => 40
[minutes] => 58
[hours] => 21
[mday] => 17
[wday] => 2
[mon] => 6
[year] => 2003
[yday] => 167
[weekday] => Tuesday
[month] => June
[0] => 1055901520
)
SEE ALSO date(3), idate(3), localtime(3), time(3), setlocale(3).
PHP Documentation Group GETDATE(3)