Каратэ | Как вычесть две даты в каратэ

Scenario: Testing date
      Given url 
      When method get
      Then status 200
      And def releaseDate = response.meta.event.releaseDate
      And print "Release Data is: ", releaseDate
      * def today =
        """
        function() {
          var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
          var sdf = new SimpleDateFormat('MMM dd, yyyy');
          return sdf.format(new java.util.Date());
        }
        """
      * print today()
      * def today = today()
      * eval diff = today- releaseDate
      And print "Difference is: ", diff
      And assert diff >= 14
* def datediff =
        """
        function(first, second) {
        return Math.round((second - first) / (1000 * 60 * 60 * 24));
        }
        """
      * eval diff = datediff(today, releaseDate)

Получение следующего

16:16:02.894 [основная] ИНФОРМАЦИЯ com.intuit.karate - [печать] Дата выпуска: 15 августа 2002 г. 16:16:02.965 [основная] ИНФОРМАЦИЯ com.intuit.karate - [печать] 08 декабря 2022 г. 16:16:02.974 [основная] ИНФОРМАЦИЯ com.intuit.karate - [распечатать] Сегодняшняя дата: 08 декабря 2022 г. 16:16:03.044 [основная] ИНФОРМАЦИЯ com.intuit.karate - [печать] Разница: NaN

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот решение, которое должно ответить на все ваши вопросы. Возможны улучшения, но я оставлю это вам в качестве домашнего задания.

* def toDate =
"""
function(date) {
  var Formatter = Java.type("java.time.format.DateTimeFormatter");
  var LocalDate = Java.type("java.time.LocalDate");  
  var dtf = Formatter.ofPattern("yyyy-MM-dd");
  return LocalDate.parse(date, dtf);
}
"""

* def dateMinus =
"""
function(dateString, days) {
    var date = toDate(dateString);
    return date.minusDays(days);
}
"""

* def formatDate =
"""
function(date) {
  var Formatter = Java.type("java.time.format.DateTimeFormatter");
  var LocalDate = Java.type("java.time.LocalDate");  
  var dtf = Formatter.ofPattern("yyyy-MM-dd");
  return dtf.format(date);
}
"""

* def beforeDate = '2022-12-08'
* def afterDate = dateMinus(beforeDate, 5)
* def afterDateString = formatDate(afterDate)
* match afterDateString == '2022-12-03'

Если у вас есть дополнительные вопросы, обратитесь к Java LocalDate API.

Другие вопросы по теме

Как решить исключение в потоке «AWT-EventQueue-0» java.lang.ExceptionInInitializerError из-за poi.ss.util.CellReference.<init>?
Feignclient не получает список настроенных серверов
Джерси. EOF при операции загрузки: java.lang.IllegalStateException: невозможно выполнить операцию: разрешение на xxx.UploadFileData
Как отключить все входящие push-уведомления, когда вы находитесь в нужной активности?
Может ли кто-нибудь сказать мне, почему моя заливка вызывает ошибку stackoverflow?
Мне нужно преобразование толчка для данного ввода. Массив фотографий динамичен по своей природе
Проблема с приложением React + Spring — AxiosError Не удалось получить свойства. Объект может больше не существовать
Не удалось выполнить цель org.codehaus.mojo:exec-maven-plugin:3.0.0:exec (default-cli)
IntelliJ IDEA не распознает формат схемы GraphQL в каталоге ресурсов
Я ничего не делаю, это исправить эту ошибку: «Несовместимые типы. Найдено:« Автомобиль », требуется:« java.lang.Object »», полный код ниже, и любая помощь приветствуется