using System;
using System.Linq;
using System.Threading;
namespace ConsoleApplication1 {
internal static class Program {
private static DateTime _partyBegin;
private static DateTime _partyEnd;
private static DateTime _dt;
private static int SetPartyWindow(int begin, int end) {
_partyBegin = DateTime.Today.AddHours(begin);
_partyEnd = DateTime.Today.AddHours(end);
return end - begin;
}
private static string FormatWithTime(bool condition, string @true, string @false) =>
$"{( condition ? @true : @false )} {_dt:HH:mm:ss}";
public static void Main(string[] args) {
int diff = SetPartyWindow(12, 20);
string quitMsg;
Console.CursorVisible = false;
Console.WriteLine($"Set for a(n) {diff} hour party.");
Console.WriteLine($"Party begins {_partyBegin:yyyy MMMM dd} at {_partyBegin:HH:mm:ss}");
Console.WriteLine($"Party ends {_partyEnd:yyyy MMMM dd} at {_partyEnd:HH:mm:ss}");
while (true) {
_dt = DateTime.Now;
bool partyTime = _dt.Hour >= _partyBegin.Hour && _dt.Hour <= _partyEnd.Hour;
string msg = FormatWithTime(partyTime, "PARTY TIME!" , "There is no party at this time...");
quitMsg = FormatWithTime(partyTime, "Party's over :(" , "Goodbye");
int buffDiff = Console.BufferWidth - 1 - msg.Length;
Console.Write($"{msg}{string.Join("", Enumerable.Repeat(" ", buffDiff))}");
if (Console.KeyAvailable) {
if (Console.ReadKey(true).Key == ConsoleKey.Escape) {
break;
}
}
Console.CursorLeft = 0;
Thread.Sleep(1000);
}
Console.WriteLine();
Console.WriteLine(quitMsg);
}
}
}
Comments
0 B
|👍
/👎