, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Weather Observatory | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Weather

Before visiting the observatory, be sure to check both the weather and sky conditions. Below you will find both weather reports and detailed information about times for sunrise/set and moonrise/set.

Grand Rapids, MI

  • Local TV forecasts: | | |



Rehoboth, NM


Ìý

General

Astronomical calendars (sunrise and sunset times)

Before you visit the observatory, check the astronomical calendars listed below to note sunrise and sunset times.

Please note that when Daylight Savings Time is in effect, add one hour to the time given in the tables above. Daylight Saving Time begins at 2:00 am on the second Sunday in March (at which time clocks are advanced) and end at 2:00 am on the first Sunday in November (at which time clocks are moved back). For the year 2020, DST begins March 8 and ends November 1.

Astronomical calendar for ÃÛÌÒapp Observatory, Michigan (EST)

Astronomical calendar for Rehobeth Observatory, New Mexico (MST)

  • Nautical twilight