确定.NET中的备用日期(在PowerShell、C#或VB中)

确定.NET中的备用日期(在PowerShell、C#或VB中),c#,.net,powershell,date,math,C#,.net,Powershell,Date,Math,根据备用日期执行操作的最简单方法是什么 基本上,我在Azure文件存储上有两个文件夹(dir1&dir2),每天都需要在其中复制(重写)文件—一天在“dir1”,第二天在“dir2” 我正试图在PowerShell中编写这篇文章(但很高兴您能用C#或VB给出答案) 我尝试了偶数/奇数日期逻辑,但如果月份在31号结束,它就会中断,因为下一个日期,即1号也是奇数(与365之后的一年中的第1天相同,两者都是奇数) 或 我想另一种方法可能是读取“Last Modified”文件属性,但我很难读取它,因为

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

基本上,我在Azure文件存储上有两个文件夹(dir1&dir2),每天都需要在其中复制(重写)文件—一天在“dir1”,第二天在“dir2”

我正试图在PowerShell中编写这篇文章(但很高兴您能用C#或VB给出答案)

我尝试了偶数/奇数日期逻辑,但如果月份在31号结束,它就会中断,因为下一个日期,即1号也是奇数(与365之后的一年中的第1天相同,两者都是奇数)

我想另一种方法可能是读取“Last Modified”文件属性,但我很难读取它,因为包含的文件夹位于Azure cloud(Azure文件存储)中

我会感激你的任何想法。 TIA

您可以使用day,而不是day of month或day of year,因为某些固定时间点:


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

if(((获取日期)-[DateTime]'2018-01-01').Days%2){'use dir1'}否则{'use dir2'}


谢谢。

您只需计算自某个固定时间点以来的天数,然后用它来确定偶数或奇数

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

最好的方法是读取文件日期并覆盖最早的数据集。由于您无法可靠地获取数据(我对此一无所知),您可能只需要在每个目录中添加一个带有时间戳文件名的文件。@EddieKumar-您是否有可能选择正确的答案?这就是它的工作原理。谢谢@dymanoid,我将尝试这个,在PowerShell中编写它,并将代码作为答案发布在这里。助教。。
if((Get-Date).DayOfYear % 2 -eq 0 ) {"copy files in dir1"} else {"copy files in dir2"}
int totalDays = (int)DateTime.UtcNow.Subtract(new DateTime(1970,1,1,0,0,0)).TotalDays;
if (totalDays % 2 == 0) { }
else { }
$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"}
if (((Get-Date) - [DateTime]'1970-01-01').Days % 2) {
    Write-Host 'odd day'
} else {
    Write-Host 'even day'
}