From aa38116d05d4a150f060bb9fbfab0a6d1be24921 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 | 39 +++++++++---------- src/CalculatorUnitTests/DateUtils.h | 8 ++-- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/CalcViewModel/DateCalculatorViewModel.cpp b/src/CalcViewModel/DateCalculatorViewModel.cpp index ff8e0d9c..f72ba0de 100644 --- a/src/CalcViewModel/DateCalculatorViewModel.cpp +++ b/src/CalcViewModel/DateCalculatorViewModel.cpp @@ -254,13 +254,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 +282,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 +307,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 +332,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 +351,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 +393,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);