Sorry if in some of the links above already mentioned:
For recognizing the zero crossing,
clipping diodes and a resistor for keeping the current low enough (Imax of diode @ Umax) should do the job.http://en.wikipedia.org/wiki/Clipper_(electronics)
Well, of course it has to look like here in the first post with an additional resisor at Vin.
Also Schottky Diodes should be used...http://www.mikrocontroller.net/topic/78414
Sorry for not finding the right picture in the first.
That's not necessarily going to work well into a digital pin, the Due requires
very fast logic edges on its inputs, a sloping waveform is going to cause all
sorts of havoc(*).
It could work for an analog pin, but its asymmetrical, the zero-point isn't nicely on
the sloping part so you'll see distorted crossing times from a pure sinewave in.
You really need a fast comparator like an LM339 with a little hysteresis feedback
and a pull-up on the output. Use a resistor divider to scale and shift the input voltage
appropriately into the range of the comparator and use an identical network to map
your AC zero volt level to the other comparator input. Result is symmetrical crossing
detection with fast edges.
(*) oscillations / multiple transitions (perhaps hundreds of them, depends on how noisy
the original signal is), high current flow through the input circuitry when the level is
mid-rail (the CMOS equivalent of shoot-through in H-bridges).
Logic signals need to be either LOW or HIGH or transitioning rapidly between those
states (for the Due which is a high speed chip, that probably means < 100ns). Arduinos
like the Uno have some hysteresis built-in to the pins input circuitry to help prevent
these issues, the Due has this only on a subset of the pins (the datasheet says which).