Rules: Display Message every first login per day; reset day 12:00am
There's a few things to mention here. 


Using the [account:last-login] token won't work here; Drupal's login process updates the user account login timestamp before User logs in event.
Using the [account:last-access] token will work however because the User logs in event triggers before Drupal updates the access timestamp.
PHP's strtotime() has a special keyword for the significant time you're looking for; strtotime('midnight') produces the timestamp of when the current day started.


Putting that together, you can create your own custom rules condition via hook_rules_condition_info() and using it compare against the [account:last-access] token in the User logs in event to produce the effect you're looking for:

/**
 * implementation of hook_rules_condition_info()
 */
function MYMODULE_rules_condition_info() {
  return array(
    'MYMODULE_condition_before_midnight' =&gt; array(
      'label' =&gt; t('Before Midnight'),
      'arguments' =&gt; array(
        'last_login' =&gt; array('type' =&gt; 'date', 'label' =&gt; t('The date to compare.')),
      ),
      'module' =&gt; 'MYMODULE',
      'group' =&gt; t('MYMODULE'),
    ),
  );
}

/**
 * Condition MYMODULE_condition_before_midnight
 */
function MYMODULE_condition_before_midnight($last_login) {
  return ($last_login &lt; strtotime('midnight'));
}