识别.NET中的备用日期(在PowerShell,C#或VB中)

时间:2018-10-17 11:06:06

标签: c# .net powershell date math

根据备用日期执行操作的最简单方法是什么?

基本上,我在Azure文件存储上有2个文件夹( dir1 dir2 ),其中需要每天复制(覆盖)-一天在“ dir1”中,第二天在“ dir2”中。

我正在尝试使用PowerShell编写此代码(但对您在C#或VB中的回答感到满意)。

我尝试了偶数/奇数日期逻辑,但是如果月份在31日结束,则会中断-因为下一个日期,即1st也是一个奇数(与365出现在1st之后的年份相同,都是奇数)。

if((Get-Date).Day % 2 -eq 0 ) {"copy files in dir1"} else {"copy files in dir2"}

OR

if((Get-Date).DayOfYear % 2 -eq 0 ) {"copy files in dir1"} else {"copy files in dir2"}

我想另一种方法可能是读取“ 最后修改”文件属性,但是由于包含的文件夹位于Azure云中(在Azure文件存储中),因此我很难读取此文件

我将不胜感激。 TIA

3 个答案:

答案 0 :(得分:6)

您可以使用 day而不是某月的天某天的某天

int totalDays = (int)DateTime.UtcNow.Subtract(new DateTime(1970,1,1,0,0,0)).TotalDays;
if (totalDays % 2 == 0) { }
else { }

答案 1 :(得分:1)

这是PowerShell中的解决方案。我对“天数”应用了偶数/奇数逻辑,这是通过 用固定日期减去当前日期 (如其他建议)所计算/生成的,已在PowerShell中进行了编写和测试,并可以确认其工作正常。

if(((Get-Date)-[DateTime]'2018-01-01').Days % 2) {'use dir1'} else{'use dir2'}

OR

$fixedDate = (Get-Date "01/01/2018")
$today = (Get-Date)
$ts = New-TimeSpan -Start $fixedDate -End $today
if(($ts).Days % 2 -eq 0) {"copy files in dir1"} else {"copy files in dir2"}

谢谢。

答案 2 :(得分:1)

您可以只计算自固定时间点以来的天数,然后使用该天数确定偶数或奇数。

if (((Get-Date) - [DateTime]'1970-01-01').Days % 2) {
    Write-Host 'odd day'
} else {
    Write-Host 'even day'
}