powershellpowershell-2.0

Get the number of Days in the current month using powershell


I have the need to retrieve the number of days in the current month, and despite my research, I have yet to find anything in powershell that does it. The following is what I have currently built to get the result I want. is there a better way to do it?

Please note that I am limited to Powershell

    #check to see if this is a leap year
    function LYC
    {
        if ([System.DateTime]::isleapyear((Get-Date).Year))
        {
            $Global:LY = True
        }
    }
    #Get the number of days in current month
    function fNOD
    {
        $MNum = (Get-Date).Month
        switch ($MNum)
        {
            1   {$Global:DaysInMonth=31}
            2   {
                    LYC
                    if (LY)
                    {
                        $Global:DaysInMonth=29
                    } else {
                        $Global:DaysInMonth=28
                    }
                }
            3   {$Global:DaysInMonth=31}
            4   {$Global:DaysInMonth=30}
            5   {$Global:DaysInMonth=31}
            6   {$Global:DaysInMonth=30}
            7   {$Global:DaysInMonth=31}
            8   {$Global:DaysInMonth=31}
            9   {$Global:DaysInMonth=30}
            10  {$Global:DaysInMonth=31}
            11  {$Global:DaysInMonth=30}
            12  {$Global:DaysInMonth=31}
        }
    }

Solution

  • http://msdn.microsoft.com/en-us/library/system.datetime.daysinmonth.aspx

    # static int DaysInMonth(int year, int month)
    [DateTime]::DaysInMonth(2013, 3)