我需要检索当月的天数,尽管我进行了研究,但我还没有找到PowerShell中的任何内容。以下是我目前为获得想要的结果而构建的内容。有更好的方法吗?
请注意,我仅限于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}
}
}
答案 0 :(得分:11)
http://msdn.microsoft.com/en-us/library/system.datetime.daysinmonth.aspx
# static int DaysInMonth(int year, int month)
[DateTime]::DaysInMonth(2013, 3)
答案 1 :(得分:0)
在我看来,这可能看似简单:
$numDays = ((Get-Date -Month 3) - (Get-Date -Month 2))
二月28天,七月减六月给我30天。
如下所述,显然有时会出现一些奇怪的整数舍入,它会释放29d,23h,59m或其他不正确的东西。
这似乎是一致的:
$monthLess = Get-Date -Month 4
$NumDays = (Get-Date -Month 5).Subtract($monthLess)
答案 2 :(得分:0)
假设您希望它存储在$date
中的任何日期:
((get-date $date -Day 1 -hour 0 -Minute 0 -Second 0).AddMonths(1).AddSeconds(-1)).Day