The territorial extent of Brazil comprises 4 time zones (-2hs, -3hs, -4hs and -5hs in relation to Greenwich).
You can get the time in each of these spindles through the following code:
Console.WriteLine ("Exibir horários conforme TimeZone");
DateTime timeUtc = DateTime.UtcNow;
var noronha = TimeZoneInfo.FindSystemTimeZoneById("Brazil/DeNoronha");
var brasilia = TimeZoneInfo.FindSystemTimeZoneById("Brazil/East");
var amazonas = TimeZoneInfo.FindSystemTimeZoneById("Brazil/West");
var acre = TimeZoneInfo.FindSystemTimeZoneById("Brazil/Acre");
Console.WriteLine(String.Format("UTC Time: {0}",timeUtc.ToString()));
Console.WriteLine(String.Format("Hora Noronha: {0}",TimeZoneInfo.ConvertTimeFromUtc(timeUtc, noronha).ToString()));
Console.WriteLine(String.Format("Hora Brasilia: {0}",TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).ToString()));
Console.WriteLine(String.Format("Hora Amazonas: {0}",TimeZoneInfo.ConvertTimeFromUtc(timeUtc, amazonas).ToString()));
Console.WriteLine(String.Format("Hora Acre: {0}",TimeZoneInfo.ConvertTimeFromUtc(timeUtc, acre).ToString()));
However, this does not correspond to the answer according to each region of the country. For example, the North region has part of its territory with -5hs (Acre), -4hs (Amazonas, Rondônia and Roraima) and -3hs (Pará, Amapá and Tocantins) in relation to Greenwich. The Midwest region, with the exception of Goiás (-3hs) is framed in the zone of -4hs. The rest of Brazil (Northeast, Southeast and South) has a zone of -3hs. The exception is Noronha that has -2hs in relation to Greenwich.
It should be noted that during summer time the Northeast, Southeast and South regions have the same zone of Noronha (-2hs).
Try to explain better what you want and what result you expect to get. try giving an example
– Maniero
almost that: http://www.apolo11.com/tictoc/fuso_horario.php
– novic