From 7a113045f3e395935ee465e5abfe24e7fbc8db8d Mon Sep 17 00:00:00 2001 From: Rose <83477269+AtariDreams@users.noreply.github.com> Date: Mon, 23 May 2022 12:43:27 -0400 Subject: [PATCH] Check for exactly 1 before using the singular noun, rather than greater than 1 Should this code ever be refactored in such a way that the check to 0 is changed, this will ensure the end result does not change. In addition, it is naturally immediately apparent to the developers what is going on, potentially enhancing maintainability. Additionally, make bitwise operations more obvious in their intentions. --- src/CalcViewModel/DateCalculatorViewModel.cpp | 48 ++++++++++--------- src/CalculatorUnitTests/DateUtils.h | 8 ++-- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/CalcViewModel/DateCalculatorViewModel.cpp b/src/CalcViewModel/DateCalculatorViewModel.cpp index ff8e0d9c..30f77cb3 100644 --- a/src/CalcViewModel/DateCalculatorViewModel.cpp +++ b/src/CalcViewModel/DateCalculatorViewModel.cpp @@ -157,10 +157,13 @@ void DateCalculatorViewModel::OnInputsChanged() // Subtract number of Days, Months and Years from a Date dateTimeResult = m_dateCalcEngine->SubtractDuration(StartDate, dateDiff); } - IsOutOfBound = dateTimeResult == nullptr; - - if (!m_isOutOfBound) + if (dateTimeResult == nullptr) { + IsOutOfBound = true; + } + else + { + IsOutOfBound = false; DateResult = dateTimeResult->Value; } } @@ -254,13 +257,13 @@ String ^ DateCalculatorViewModel::GetDateDiffString() const result += GetLocalizedNumberString(yearCount)->Data(); result += L' '; - if (yearCount > 1) + if (yearCount == 1) { - result += resourceLoader->GetResourceString(L"Date_Years")->Data(); + result += resourceLoader->GetResourceString(L"Date_Year")->Data(); } else { - result += resourceLoader->GetResourceString(L"Date_Year")->Data(); + result += resourceLoader->GetResourceString(L"Date_Years")->Data(); } // set the flags to add a delimiter whenever the next unit is added @@ -282,13 +285,13 @@ String ^ DateCalculatorViewModel::GetDateDiffString() const result += GetLocalizedNumberString(monthCount)->Data(); result += L' '; - if (monthCount > 1) + if (monthCount == 1) { - result += resourceLoader->GetResourceString(L"Date_Months")->Data(); + result += resourceLoader->GetResourceString(L"Date_Month")->Data(); } else { - result += resourceLoader->GetResourceString(L"Date_Month")->Data(); + result += resourceLoader->GetResourceString(L"Date_Months")->Data(); } } @@ -307,13 +310,13 @@ String ^ DateCalculatorViewModel::GetDateDiffString() const result += GetLocalizedNumberString(weekCount)->Data(); result += L' '; - if (weekCount > 1) + if (weekCount == 1) { - result += resourceLoader->GetResourceString(L"Date_Weeks")->Data(); + result += resourceLoader->GetResourceString(L"Date_Week")->Data(); } else { - result += resourceLoader->GetResourceString(L"Date_Week")->Data(); + result += resourceLoader->GetResourceString(L"Date_Weeks")->Data(); } } @@ -332,13 +335,13 @@ String ^ DateCalculatorViewModel::GetDateDiffString() const result += GetLocalizedNumberString(dayCount)->Data(); result += L' '; - if (dayCount > 1) + if (dayCount == 1) { - result += resourceLoader->GetResourceString(L"Date_Days")->Data(); + result += resourceLoader->GetResourceString(L"Date_Day")->Data(); } else { - result += resourceLoader->GetResourceString(L"Date_Day")->Data(); + result += resourceLoader->GetResourceString(L"Date_Days")->Data(); } } @@ -351,13 +354,13 @@ String ^ DateCalculatorViewModel::GetDateDiffStringInDays() const result += L' '; // Display the result as '1 day' or 'N days' - if (m_dateDiffResultInDays.day > 1) + if (m_dateDiffResultInDays.day == 1) { - result += AppResourceProvider::GetInstance()->GetResourceString(L"Date_Days")->Data(); + result += AppResourceProvider::GetInstance()->GetResourceString(L"Date_Day")->Data(); } else { - result += AppResourceProvider::GetInstance()->GetResourceString(L"Date_Day")->Data(); + result += AppResourceProvider::GetInstance()->GetResourceString(L"Date_Days")->Data(); } return ref new String(result.data()); @@ -393,15 +396,14 @@ DateTime DateCalculatorViewModel::ClipTime(DateTime dateTime, bool adjustUsingLo if (adjustUsingLocalTime) { FILETIME fileTime; - fileTime.dwLowDateTime = (DWORD)(dateTime.UniversalTime & 0xffffffff); - fileTime.dwHighDateTime = (DWORD)(dateTime.UniversalTime >> 32); + fileTime.dwLowDateTime = static_cast(dateTime.UniversalTime & 0xffffffff); + fileTime.dwHighDateTime = static_cast(dateTime.UniversalTime >> 32); FILETIME localFileTime; FileTimeToLocalFileTime(&fileTime, &localFileTime); - referenceDateTime.UniversalTime = (DWORD)localFileTime.dwHighDateTime; - referenceDateTime.UniversalTime <<= 32; - referenceDateTime.UniversalTime |= (DWORD)localFileTime.dwLowDateTime; + referenceDateTime.UniversalTime = (static_cast(localFileTime.dwHighDateTime) << 32) | localFileTime.dwLowDateTime; + } else { diff --git a/src/CalculatorUnitTests/DateUtils.h b/src/CalculatorUnitTests/DateUtils.h index b21bb331..ff6b756c 100644 --- a/src/CalculatorUnitTests/DateUtils.h +++ b/src/CalculatorUnitTests/DateUtils.h @@ -16,9 +16,7 @@ namespace DateCalculationUnitTests SystemTimeToFileTime(&systemTime, lpFileTime); Windows::Foundation::DateTime dateTime; - dateTime.UniversalTime = (DWORD)lpFileTime->dwHighDateTime; - dateTime.UniversalTime <<= 32; - dateTime.UniversalTime |= (DWORD)lpFileTime->dwLowDateTime; + dateTime.UniversalTime = (static_cast(lpFileTime->dwHighDateTime) << 32) | (lpFileTime->dwLowDateTime); return dateTime; } @@ -28,8 +26,8 @@ namespace DateCalculationUnitTests static SYSTEMTIME DateTimeToSystemTime(Windows::Foundation::DateTime dateTime) { FILETIME fileTime; - fileTime.dwLowDateTime = (DWORD)(dateTime.UniversalTime & 0xffffffff); - fileTime.dwHighDateTime = (DWORD)(dateTime.UniversalTime >> 32); + fileTime.dwLowDateTime = static_cast(dateTime.UniversalTime & 0xffffffff); + fileTime.dwHighDateTime = static_cast(dateTime.UniversalTime >> 32); SYSTEMTIME systemTime; FileTimeToSystemTime(&fileTime, &systemTime);