It seems that this badge has changed and now only requires ≥200 rep from any source (sans bounties), not just votes.
Evidence: User Adam Rackis is the latest the earn the epic badge and has 51 days with over 200 rep.
Two of those days (probably more but I only needed 2 to verify) upvote rep was < 200.
On Dec 30th 2011: 160 from votes + 60 from accepts (=220)
On Jan 17th 2012: 170 from votes + 45 from accepts (=215)
From Jeff: http://meta.stackexchange.com/questions/57232/is-150-rep-cap-exceeded-alone-enough-for-legendary-badge/58192#58192
Here's the exact SQL (and the disconnect is between the SQL and the C# code) for the badge.
FROM users u WITH (nolock),
/* return all userids who have hit the rep cap for 150 days */
(SELECT targetuserid AS userid
FROM (SELECT targetuserid,
CONVERT(CHAR(8), creationdate, 112) AS dayperiod,
SUM(targetrepchange) AS dayrep
WHERE targetrepchange IS NOT NULL
AND deletiondate IS NULL
GROUP BY targetuserid,
CONVERT(CHAR(8), creationdate, 112)
HAVING SUM(targetrepchange) >= 200) AS x
GROUP BY targetuserid
HAVING COUNT(*) >= 150) x
WHERE u.id NOT IN /* return all userids who do NOT have the badge */
FROM users2badges u2b WITH (nolock)
INNER JOIN badges b
ON u2b.badgeid = b.id
WHERE b.name = 'Legendary'
AND u.id = x.userid