Number of days in the previous month


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Number of days in the previous month
# 1  
Old 06-29-2010
Number of days in the previous month

Hi all. I am scripting in a POSIX shell on HPUX.

I am running a script that needs to determine the number of days in a month.

I found this on the forum and it works great:

Code:
X=`cal $(date +%m) $(date +%Y) | grep -v '[A-Za-z]' | wc -w`

The issue is that I am running the script on the 7th day of month, for the previous month. How can I get the number of days in the previous month?

TIA!

Last edited by Scott; 08-10-2010 at 05:20 AM.. Reason: Code tags
# 2  
Old 06-29-2010
Like this?
Code:
X=$(cal $(( ( $(date +%m) + 11 - 1 ) %12 + 1 )) $(date +%Y) | grep -v '[A-Za-z]' | wc -w)

# 3  
Old 06-30-2010
well

that line puts 31 in X, so I guess it works! Can you explain it a bit?

Thanks very much, it seems like just what I needed.
# 4  
Old 06-30-2010
If you are using ksh93
Code:
$ X=$(printf "%(%d)T\n" "final last month")
$ echo $X
31

# 5  
Old 08-09-2010
whoops

- HPUX POSIX Shell -


This month, the command below is returning an error...

Code:
# X=$(cal $(( ( $(date +%m) + 11 - 1 ) %12 + 1 )) $(date +%Y) | grep -v '[A-Za-z]' | wc -w)

sh: 08 + 11 - 1 ) %12 + 1 : The specified number is not valid for this command.

It seemed to work last month....any ideas?

TIA!!!

Last edited by Scott; 08-10-2010 at 05:20 AM.. Reason: Code tags, please...
# 6  
Old 08-09-2010
Code:
# cal -3 | sed -n '/29/p' | sed 's/  *$//;s/.*\([0-9][0-9]\)     .*/\1/'

# 7  
Old 08-09-2010
Hmmm

that works on my gentoo system, but it doesn't return anything on the hp

Code:
 X="`cal -3 | sed -n '/29/p' | sed 's/  *$//;s/.*\([0-9][0-9]\)     .*/\1/'`"
# echo $X

#


Last edited by Scott; 08-10-2010 at 05:20 AM.. Reason: Code tags, please...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Number of days in current month

I have a homework assignment: ---------------------------------------- "Display" the number of days in the current month. For example: September 1996 has 30 days ---------------------------------------- I am trying to just display the head of cal to start the sentence. eg. cal | head ... (1 Reply)
Discussion started by: eaafuddy
1 Replies

2. UNIX for Dummies Questions & Answers

Finding days in previous month

#!/bin/ksh day=1 month=1 year=2012 if then then prevmonth=31 elif then prevmonth=30 elif then then prevmonth=29 elif then prevmonth=29 else prevmonth=28 fi (4 Replies)
Discussion started by: vagar11
4 Replies

3. Shell Programming and Scripting

How to Find number of days in a month in mmddyyyy format?

Hi Guru's, I am working on a shell script from past a month and unable to get rid of automating while working with dates,here's what i have. inital_date=11012011 final_date=11302011 expected_output= has to be in below format PFB 11012011 11022011 11032011 * * * 11102011 * *... (9 Replies)
Discussion started by: Gaurav198
9 Replies

4. Shell Programming and Scripting

display number of days in current month

hi all searched google and here, cant find and am begining to suspect there is no options for this. shell = born with either the date or cal command I need to display the number of days in current month. can anyone point me in the right direction? (10 Replies)
Discussion started by: rontopia
10 Replies

5. Programming

Number of days in month from certain parameters, c programming request.

Hi, I have an issue in date processing, the issue is I have a month as an int ( 1 - 12 ), the weekday as int ( 0 - 6 , 0 = Sunday), and the week day in month as int ( 0 - 5, 5 = last ex: first sunday, last monday, third tuesday ... ), now from those three parameters is there a possible way to... (2 Replies)
Discussion started by: modn3
2 Replies

6. Shell Programming and Scripting

Number of days in month from certain parameters

Hi, I have an issue in date processing, the issue is I have a month as an int ( 1 - 12 ), the weekday as int ( 0 - 6 , 0 = Sunday), and the week day in month as int ( 0 - 5, 5 = last ex: first sunday, last monday, third tuesday ... ), now from those three parameters is there a possible way to... (5 Replies)
Discussion started by: modn3
5 Replies

7. UNIX for Dummies Questions & Answers

print previous month (current month minus 1) with Solaris date and ksh

Hi folks month=`date +%m`gives current month Howto print previous month (current month minus 1) with Solaris date and ksh (7 Replies)
Discussion started by: slashdotweenie
7 Replies

8. Shell Programming and Scripting

Assigning number of days in the month to a variable

I am writing a script that requires the number of days in any given month. In the shell, I can use the command: cal `date +%m` `date +%Y`| grep -v '' | wc -w to give me the number of days in the month, but when I assign it to a variable: VAR=`cal `date +%m` `date +%Y`| grep -v '' | wc... (3 Replies)
Discussion started by: skaptakalian
3 Replies

9. Shell Programming and Scripting

calculate the number of days left in a month

does any one have any ideas how i would go about calculating the number of days left in the month from a bash script ?. I want to do some operations on a csv file according to the result (8 Replies)
Discussion started by: dunryc
8 Replies

10. Shell Programming and Scripting

Calc number of days in a month

Looking for some help on capturing the number of days in a month to set as a loop counter. Any ideas, please let me know. (3 Replies)
Discussion started by: flounder
3 Replies
Login or Register to Ask a Question