I don't think the sign of the argument matters, Without the *
the skip is always discarded at the start of the page, and with the *
it is not discarded.
To answer the second question added later, it shouldn't affect the page before the break (although it may be possible to generate edge cases where it does) but it will of course affect the positioning of the first box on the page after the break and so will affect all subsequent breaks.
\vspace
only takes effect when LaTeX creates a line break or a new paragraph. I think more technically, \vspace
only has effect when LaTeX is in vertical mode. If LaTeX is not currently in vertical mode, LaTeX saves the \vspace
until next time it enters vertical mode.
So for example I can write:
\documentclass{article}
\begin{document}
Alice was beginning \vspace{2ex} to get very tired of sitting by her sister on
the bank, and of having nothing to do. Once or twice she had peeped
into the book her sister was reading, but it had no pictures or
conversations in it, ``and what is the use of a book,'' thought
Alice, ``without pictures or conversations?''
\end{document}
which results in

If I want to force the \vspace
at the point where I place it, I must start a newline there also:
\documentclass{article}
\begin{document}
Alice was beginning \vspace{2ex}\newline to get very tired of sitting by her sister on
the bank, and of having nothing to do. Once or twice she had peeped
into the book her sister was reading, but it had no pictures or
conversations in it, ``and what is the use of a book,'' thought
Alice, ``without pictures or conversations?''
\end{document}

Alternatively you can start a new paragraph:
\documentclass{article}
\begin{document}
Alice was beginning \vspace{2ex}
\noindent
to get very tired of sitting by her sister on
the bank, and of having nothing to do. Once or twice she had peeped
into the book her sister was reading, but it had no pictures or
conversations in it, ``and what is the use of a book,'' thought
Alice, ``without pictures or conversations?''
\end{document}

These last two examples may look very similar, but the effects could be different if you've set \parskip
to a non-zero value, which is generally discouraged.
Best Answer
You want to use a sectioning command, that will guarantee that no page break will be taken between the diary date and the following text. For instance
The space in the case of
\section
followed by\diarydate
is the same as the space between a section title and normal text.If you change the "space before" line into
the first line after
\diarydate
will not be indented. I used\topsep
as it is the vertical space used byflushright
.Here are the pictures.
First page
Second page
If you really want to suppress vertical spacing after a heading, you can do it in two steps:
and use
\diarydate
as before.