Every year Valentine's Day teaches us how cruel the law of supply and demand can be. Prices on roses, restaurant dinners and hotel rooms take a hike as Valentine's Day nears. The two dozen roses available year round in multiple colors at warehouse clubs for about $15 will run much more at any floral kiosk or flower shop as the 14th closes in.

But if you and your sweetie want to "beat the system" you could celebrate early and save some cash. If that sounds cheap, then call these tips a Valentine prelude to the real thing in a couple of weeks. And if you're single, and you just want to brighten up a cloudy day with flowers or treat yourself to gourmet chocolates, here's how.

Chocolate: Through Wednesday, Chocolat Celeste is discounting all of its winter collection 50%. All sizes of assorted chocolates are on sale including a 9-piece for $13 (reg. $26), and a 16-piece box for $22 (reg. $44). City Pages once named Chocolat Celeste as having the "best chocolate in the Twin Cities." Purchases can be online or in person in St. Paul.

Roses: The warehouse clubs (Costco and Sam's Club) tend to have the lowest prices on 2-dozen roses (about $15) until Val's Day nears. Some retailers such as Cub or Target usually have deals as the day nears. Check their Sunday fliers on Feb. 5 or 12. Aldi's selection and quality is always hit or miss, but its prices are dependably low for half a dozen roses (about $4).

Restaurants: Those prix fixe menus of $75 to $100 per person often come out on Valentine's Day. And reservations can be difficult to get. Solve the problem by going out for a romantic dinner before the 14th.

Twin Cities-based financial educator Ruth Hayden, who runs classes for couples and money, thinks celebrating Valentine's in advance is OK if each person is fine with it and agrees in advance to "beat the system." But avoid starting the conversation with "Money is tight so let's cut back on Valentine's Day," she said.