C#コンソール-現在の時間占有率と取得時間の計算

3086 ワード

皆さんはC#を使ってプログラミングをする時、いつも出会って、いくつかリアルタイムで更新時間のプロジェクトを表示して、しかし、多くのC#に接触したばかりの白はまるで悪夢で、特にWPFを使う時、Timerコントロールがなくて、やっと時間コードを表示することを見つけて、1回の最新の読み取りの時間しか表示できないことを発見して、ここでは、 フォームまたはwpfアプリケーションについて説明します.
このプレゼンテーションの時間操作はhtmlの時間論理と似ており、個人のホームページ上の時間と時間の割合はこのC#プログラムを通じて2回の開発とプログラミングを行い、html版の取得時間はブログのテーマに書き、日を選んで移動する.
c#コンソールプログラムの作成
ローカル時間を取得するコードは次のとおりです.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Timers.Timer t = new System.Timers.Timer();
            t.Interval = 1000;    //    
            t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);
            t.Start();
            Console.ReadKey();
        }
        static void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.Write("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");    //\b     , \u0008  
            Console.Write(DateTime.Now.ToString("yyyy-dd-MM HH:mm:ss"));  //y   ,d   ,m   ,h    ,m    ,s   , html          .
        }
    }
}

 
c#時間パーセント
前回、ある携帯電話のアプリで現在の時間の割合が見られましたが、これは良いideaですが、残念ながらそのアプリのアルゴリズムは間違っています(窃笑)、そのアルゴリズムは:
 
現在時刻÷1日24時間=現在時刻の割合
しかし、午前0時から午前1時になると、速度が異常で偏差があるため、数学の大物と何度も演算を検討した結果、公式は以下のようになった.
 
((時間*3600)+(分*60)+(秒)/864)
あまり話さないで直接ソースに行きます.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace timenow
{
    class Program
    {
        ///                 
        /// 
        /// 
        static double DayTimePassed()
        {
            DateTime dt = DateTime.Now;
            double Numerator = dt.Hour * 60 * 60 + dt.Minute * 60 + dt.Second;
            double Denominator = 24 * 60 * 60;
            return Numerator / Denominator;
        }
        /// 
        ///                 
        /// 
        /// 
        /// 
        static double DayTimePassed(DateTime dt)
        {
            double Numerator = dt.Hour * 60 * 60 + dt.Minute * 60 + dt.Second;
            double Denominator = 24 * 60 * 60;
            return Numerator / Denominator;
        }
        static void Main(string[] args)
        {
            System.Timers.Timer t = new System.Timers.Timer();
            t.Interval = 1000;
            t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);
            t.Start();
            Console.ReadKey();


        }
        static void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.Clear();//    
            Console.WriteLine(DateTime.Now.ToString());
            Console.WriteLine("Day: " + DayTimePassed().ToString("P"));
            Console.WriteLine("Day: " + DayTimePassed(DateTime.Now).ToString("P"));
            Console.ReadLine();

        }

    }
}

2つの方式には共通点がある、内部データの呼び出しや直接出力時間の有無によって使用する.(あのアプリメーカーにも改善してほしいですね(‾◡◝))