using System.Collections.Generic;
using System.Globalization;
public static void Main()
var culture = new CultureInfo("pt-BR");
var calendar = culture.Calendar;
int weekOfYear = calendar
.GetWeekOfYear(DateTime.Now, culture.DateTimeFormat.CalendarWeekRule, culture.DateTimeFormat.FirstDayOfWeek);
Console.WriteLine(weekOfYear);
Console.WriteLine(s.ToString());
var temp = new Template { Ano = 2021, Semana = 23 };
Console.WriteLine(temp.AvailableTime(TipoDemanda.Melhoria, Semana.Ter));
public sealed class Template
public int Ano { get; set; }
public int Semana { get; set; }
private Quadro Quadro { get; set; } = new();
public int AvailableTime(TipoDemanda tipoDemanda, Semana semana)
object diaSemana = typeof(Quadro)
.GetProperty(semana.ToString())
Demanda demanda = (Demanda)typeof(DiaSemana)
.GetProperty(tipoDemanda.ToString())
return demanda.Disponivel;
Melhoria = new Demanda { Total = 200 },
public DiaSemana Seg { get; set; } = new();
public DiaSemana Ter { get; set; } = new();
public DiaSemana Qua { get; set; } = new();
public DiaSemana Qui { get; set; } = new();
public DiaSemana Sex { get; set; } = new();
public Demanda Melhoria { get; set; } = new();
public Demanda Suporte { get; set; } = new();
public Demanda Manutencao { get; set; } = new();
public Demanda Projeto { get; set; } = new();
public Demanda Administracao { get; set; } = new();
public int Total { get; set; }
public ICollection<(string Demanda, int Tempo)> Alocado { get; set; } = new List<(string, int)>();
public int Disponivel => Total - Alocado.Sum(x => x.Tempo);
public enum Semana { Seg, Ter, Qua, Qui, Sex }