How do I negate this logical expression?
So, right now my code has something like this:
if(DateA <= utcNow || (DateA == null && DateB <= utcNow)) doSomething();
I want to do something like this now:
if(!InitialExpression) continue;
AFAIK, if A || B
, the negation would be !A && !B
.
But this doesn't work: if(DateA > utcNow && (DateA != null || DateB > utcNow)) continue;
.
When DateA = null
and DateB > utcNow
it should fall into the continue but it doesn't.
Edit:
My mistake was assuming the opposite of DateA <= utcNow
is DateA > utcNow
. But it's DateA == null || DateA > utcNow
logic logical-operators boolean-logic
add a comment |
So, right now my code has something like this:
if(DateA <= utcNow || (DateA == null && DateB <= utcNow)) doSomething();
I want to do something like this now:
if(!InitialExpression) continue;
AFAIK, if A || B
, the negation would be !A && !B
.
But this doesn't work: if(DateA > utcNow && (DateA != null || DateB > utcNow)) continue;
.
When DateA = null
and DateB > utcNow
it should fall into the continue but it doesn't.
Edit:
My mistake was assuming the opposite of DateA <= utcNow
is DateA > utcNow
. But it's DateA == null || DateA > utcNow
logic logical-operators boolean-logic
Are you looking forelse
? As inif (thiscondition) dothis else dothat
?
– Ken White
Nov 14 '18 at 3:50
Look up demorgans law
– Mitchel Paulin
Nov 14 '18 at 4:12
@MitchelPaulin Thanks! I knew that law, but when I looked at the Venn Diagrams I realized my mistake. See edit in question
– Felipe
Nov 14 '18 at 14:16
add a comment |
So, right now my code has something like this:
if(DateA <= utcNow || (DateA == null && DateB <= utcNow)) doSomething();
I want to do something like this now:
if(!InitialExpression) continue;
AFAIK, if A || B
, the negation would be !A && !B
.
But this doesn't work: if(DateA > utcNow && (DateA != null || DateB > utcNow)) continue;
.
When DateA = null
and DateB > utcNow
it should fall into the continue but it doesn't.
Edit:
My mistake was assuming the opposite of DateA <= utcNow
is DateA > utcNow
. But it's DateA == null || DateA > utcNow
logic logical-operators boolean-logic
So, right now my code has something like this:
if(DateA <= utcNow || (DateA == null && DateB <= utcNow)) doSomething();
I want to do something like this now:
if(!InitialExpression) continue;
AFAIK, if A || B
, the negation would be !A && !B
.
But this doesn't work: if(DateA > utcNow && (DateA != null || DateB > utcNow)) continue;
.
When DateA = null
and DateB > utcNow
it should fall into the continue but it doesn't.
Edit:
My mistake was assuming the opposite of DateA <= utcNow
is DateA > utcNow
. But it's DateA == null || DateA > utcNow
logic logical-operators boolean-logic
logic logical-operators boolean-logic
edited Nov 14 '18 at 14:17
Felipe
asked Nov 14 '18 at 3:18
FelipeFelipe
1687
1687
Are you looking forelse
? As inif (thiscondition) dothis else dothat
?
– Ken White
Nov 14 '18 at 3:50
Look up demorgans law
– Mitchel Paulin
Nov 14 '18 at 4:12
@MitchelPaulin Thanks! I knew that law, but when I looked at the Venn Diagrams I realized my mistake. See edit in question
– Felipe
Nov 14 '18 at 14:16
add a comment |
Are you looking forelse
? As inif (thiscondition) dothis else dothat
?
– Ken White
Nov 14 '18 at 3:50
Look up demorgans law
– Mitchel Paulin
Nov 14 '18 at 4:12
@MitchelPaulin Thanks! I knew that law, but when I looked at the Venn Diagrams I realized my mistake. See edit in question
– Felipe
Nov 14 '18 at 14:16
Are you looking for
else
? As in if (thiscondition) dothis else dothat
?– Ken White
Nov 14 '18 at 3:50
Are you looking for
else
? As in if (thiscondition) dothis else dothat
?– Ken White
Nov 14 '18 at 3:50
Look up demorgans law
– Mitchel Paulin
Nov 14 '18 at 4:12
Look up demorgans law
– Mitchel Paulin
Nov 14 '18 at 4:12
@MitchelPaulin Thanks! I knew that law, but when I looked at the Venn Diagrams I realized my mistake. See edit in question
– Felipe
Nov 14 '18 at 14:16
@MitchelPaulin Thanks! I knew that law, but when I looked at the Venn Diagrams I realized my mistake. See edit in question
– Felipe
Nov 14 '18 at 14:16
add a comment |
3 Answers
3
active
oldest
votes
- Option 1 - use an
ELSE
statement
if(DateA <= utcNow || (DateA == null && DateB <= utcNow))
doSomething()
else{
dpSomethingElse();
- Option 2 - use
!
in the operator
if(!(DateA <= utcNow || (DateA == null && DateB <= utcNow))) doSomethingElse();
- Option 3 - negation - The condition of DataA not being null will need to go first. There is some context missing but assuming you want to negate the expression by ensuring that give preference to DateA if it is greater than utcNow, else check for DateB being greater then utcNow
if((DateA != null && DateA > utcNow) || DateB > utcNow) doSomethingElse()
add a comment |
The opposite of DateA <= utcNow || (DateA == null && DateB <= utcNow)
is
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
add a comment |
Your logic was pretty much alright @Felipe. Just that you overlooked a tiny aspect.
The negation of <=
is not just >
but it also includes a NULL
value.just add these 2 conditionals along with an OR
operator. This should work.
Check the updated statement below:
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53292704%2fhow-do-i-negate-this-logical-expression%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
- Option 1 - use an
ELSE
statement
if(DateA <= utcNow || (DateA == null && DateB <= utcNow))
doSomething()
else{
dpSomethingElse();
- Option 2 - use
!
in the operator
if(!(DateA <= utcNow || (DateA == null && DateB <= utcNow))) doSomethingElse();
- Option 3 - negation - The condition of DataA not being null will need to go first. There is some context missing but assuming you want to negate the expression by ensuring that give preference to DateA if it is greater than utcNow, else check for DateB being greater then utcNow
if((DateA != null && DateA > utcNow) || DateB > utcNow) doSomethingElse()
add a comment |
- Option 1 - use an
ELSE
statement
if(DateA <= utcNow || (DateA == null && DateB <= utcNow))
doSomething()
else{
dpSomethingElse();
- Option 2 - use
!
in the operator
if(!(DateA <= utcNow || (DateA == null && DateB <= utcNow))) doSomethingElse();
- Option 3 - negation - The condition of DataA not being null will need to go first. There is some context missing but assuming you want to negate the expression by ensuring that give preference to DateA if it is greater than utcNow, else check for DateB being greater then utcNow
if((DateA != null && DateA > utcNow) || DateB > utcNow) doSomethingElse()
add a comment |
- Option 1 - use an
ELSE
statement
if(DateA <= utcNow || (DateA == null && DateB <= utcNow))
doSomething()
else{
dpSomethingElse();
- Option 2 - use
!
in the operator
if(!(DateA <= utcNow || (DateA == null && DateB <= utcNow))) doSomethingElse();
- Option 3 - negation - The condition of DataA not being null will need to go first. There is some context missing but assuming you want to negate the expression by ensuring that give preference to DateA if it is greater than utcNow, else check for DateB being greater then utcNow
if((DateA != null && DateA > utcNow) || DateB > utcNow) doSomethingElse()
- Option 1 - use an
ELSE
statement
if(DateA <= utcNow || (DateA == null && DateB <= utcNow))
doSomething()
else{
dpSomethingElse();
- Option 2 - use
!
in the operator
if(!(DateA <= utcNow || (DateA == null && DateB <= utcNow))) doSomethingElse();
- Option 3 - negation - The condition of DataA not being null will need to go first. There is some context missing but assuming you want to negate the expression by ensuring that give preference to DateA if it is greater than utcNow, else check for DateB being greater then utcNow
if((DateA != null && DateA > utcNow) || DateB > utcNow) doSomethingElse()
answered Nov 14 '18 at 4:01
curiouslevercuriouslever
807
807
add a comment |
add a comment |
The opposite of DateA <= utcNow || (DateA == null && DateB <= utcNow)
is
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
add a comment |
The opposite of DateA <= utcNow || (DateA == null && DateB <= utcNow)
is
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
add a comment |
The opposite of DateA <= utcNow || (DateA == null && DateB <= utcNow)
is
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
The opposite of DateA <= utcNow || (DateA == null && DateB <= utcNow)
is
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
answered Nov 14 '18 at 14:21
FelipeFelipe
1687
1687
add a comment |
add a comment |
Your logic was pretty much alright @Felipe. Just that you overlooked a tiny aspect.
The negation of <=
is not just >
but it also includes a NULL
value.just add these 2 conditionals along with an OR
operator. This should work.
Check the updated statement below:
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
add a comment |
Your logic was pretty much alright @Felipe. Just that you overlooked a tiny aspect.
The negation of <=
is not just >
but it also includes a NULL
value.just add these 2 conditionals along with an OR
operator. This should work.
Check the updated statement below:
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
add a comment |
Your logic was pretty much alright @Felipe. Just that you overlooked a tiny aspect.
The negation of <=
is not just >
but it also includes a NULL
value.just add these 2 conditionals along with an OR
operator. This should work.
Check the updated statement below:
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
Your logic was pretty much alright @Felipe. Just that you overlooked a tiny aspect.
The negation of <=
is not just >
but it also includes a NULL
value.just add these 2 conditionals along with an OR
operator. This should work.
Check the updated statement below:
(DateA == null || DateA > utcNow) && (DateA != null || DateB == null || DateB > utcNow)
answered Nov 15 '18 at 7:04
RaiRai
844620
844620
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53292704%2fhow-do-i-negate-this-logical-expression%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Are you looking for
else
? As inif (thiscondition) dothis else dothat
?– Ken White
Nov 14 '18 at 3:50
Look up demorgans law
– Mitchel Paulin
Nov 14 '18 at 4:12
@MitchelPaulin Thanks! I knew that law, but when I looked at the Venn Diagrams I realized my mistake. See edit in question
– Felipe
Nov 14 '18 at 14:16