Почему «TheDate» распечатывает десятилетие? - PullRequest
0 голосов
/ 29 января 2019

Написание кода для изменения рабочих дней в соответствии с выходными и федеральными выходными, но по какой-то причине моя переменная 'theDate' не печатает на десять лет раньше, даже если она хранится как правильная дата в моей среде RStudio.

Я пробовал различные форматы дат, но я не могу понять, что является причиной этой проблемы.

library(date)
library(tis)
start <- as.Date("2019-01-01", '%Y-%d-%m')
end   <- as.Date("2020-01-01", '%Y-%d-%m')

theDate <- start

while (theDate <= end)
{
  if(weekdays(theDate) == 'Saturday'){
    ModDate <- theDate - 1
  } else if(weekdays(theDate) == 'Sunday'){
      ModDate <- theDate - 2
  } else if(weekdays(theDate) == 'Monday'){
      ModDate <- theDate - 3
  } else {
      ModDate <- theDate - 1
  }
  if(isHoliday(ModDate) == TRUE){
    ModDate <- previousBusinessDay(ModDate)
  } else {
  }
  FormatDate <- format(ModDate, '%m/%d/%Y')
  cat("\nBaseDate: ", date.mmddyyyy(theDate), "\tMBP Date: ",
 FormatDate)
  theDate <- theDate + 1                    
}

Ожидайте что-то вроде этого:

  1. BaseDate: 31.12.2017 MBP Date: 12/31/2018
  2. BaseDate: 1/1/ 2019 MBP Дата: 12/31/2018
  3. BaseDate: 1/2/2019 MBP Дата: 01/02/2019

Но продолжайте получать это:

  1. BaseDate: 31.12.2008 MBP Date: 12/31/2018
  2. BaseDate: 01.01.2009 MBP Date: 12/31/2018
  3. BaseDate: 1 /2/2009 MBP Дата: 01/02/2019

1 Ответ

0 голосов
/ 29 января 2019

date.mmddyyyy(theDate) не меняет формат даты на mm/dd/yyyy

Из date.mmddyyy help:

Учитывая вектор юлианских дат, он возвращает ихв форме «10/11/1989», «28/7/1854» и т. д.

date.mmddyyyy(theDate) пытается проанализировать уже проанализированную дату, отсюда и странный результат, который искажается на десятилетие.

Мы можем исправить это, используя format вместо:

cat("\nBaseDate: ", format(theDate, '%m/%d/%Y'), "\tMBP Date: ", FormatDate)

BaseDate:  01/01/2019   MBP Date:  12/31/2018
BaseDate:  01/02/2019   MBP Date:  12/31/2018
BaseDate:  01/03/2019   MBP Date:  01/02/2019
BaseDate:  01/04/2019   MBP Date:  01/03/2019
BaseDate:  01/05/2019   MBP Date:  01/04/2019
BaseDate:  01/06/2019   MBP Date:  01/04/2019
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...