首页 文章

在wpf中显示另一天取决于星期几

提问于
浏览
-2

我有一个WPF应用程序,我想在顶部写这个:

“好(1)上午/下午/晚上!今天的日期:(2)日期/星期几 . 现在你必须专注于(3)周三和周四 . ”

(1)如果上午6点到凌晨6点之间的时间,下午6点到凌晨6点到下午6点半到凌晨5点59分,我想写早上 . (2)我想写出今天的日期和星期几 . 例如:“今天的日期是星期二,即2018年6月12日 . (3)我想在”你必须集中注意力“这句话之后的一周中写下不同的一天 . 周一我想写周三,周二我想写周四和周五等 .

这有解决方案吗?

感谢您的帮助!

2 回答

  • 2

    样品:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace stack_days
    {
        class Program
        {
            static void Main(string[] args)
            {
                //(1)
                string helloText = "Good " + getHoursText() + " ! ";
                //(2)
                string todayDate = "Today's date is " + DateTime.Now.ToShortDateString() + " ( " + DateTime.Now.DayOfWeek + " ) ";
                //(3)
                string specialDay = getSpecialDayIfDay();
    
                string fullText = helloText + todayDate + specialDay;
    
                Console.WriteLine(fullText);
                Console.ReadKey();
    
            }
    
            private static string getSpecialDayIfDay()
            {
                string info = "You have to concentrate on ";
                if (DateTime.Now.DayOfWeek == DayOfWeek.Tuesday)
                {
                    return info + "Wednesday and Thursday";
                }
                else if (DateTime.Now.DayOfWeek == DayOfWeek.Friday)
                {
                    return info + "Weekend";
                }
                else
                {
                    return null;
                }
            }
    
            private static string getHoursText()
            {
                string partOfDay = "";
                int hours = DateTime.Now.Hour;
                if (hours > 18)
                {
                    partOfDay = "evening";
                }
                else if (hours > 12)
                {
                    partOfDay = "afternoon";
                }
                else if (hours > 6)
                {
                    partOfDay = "morning";
                }
                else
                {
                    partOfDay = "evening";
                }
    
                return partOfDay;
            }
        }
    }
    
  • 1

    如果早上6点到凌晨6点之间的时间,我想早上写下午6点到下午6点01分到晚上6点01分到凌晨5点59分 .

    为了确定“早晨”,“下午”,“晚上”和“夜晚”,我们需要编写自己的方法 . 我所拥有的与你所要求的略有不同,因为通常早晨在午夜之后开始(人们经常会说“我早上2点才开始!”) . 但是,您可以看到逻辑,并可以根据您的喜好进行更改 .

    如果我们使用24小时制,其中午夜是 0 (这是 DateTime 使用的 Hour 属性),那么这使得计算非常简单:

    public static string GetGeneralTime(DateTime specificTime)
    {
        if (specificTime.Hour < 12) return "morning";
        if (specificTime.Hour < 17) return "afternoon";
        if (specificTime.Hour < 21) return "evening";
        return "night";
    }
    

    我想写出今天的日期和星期几 . 例如:“今天的日期是2018年6月12日,星期二 .

    对于这部分可以从DateTime string format(其包括"day of the week"格式,如"Monday"自动获得它( "dddd" ),或短形式"Mon"( "ddd" ),和"month name"像格式"June"( "MMMM" )或短形式"Jun"( "MMM" ) ) . 点击上面的链接获取更多信息 .

    例如这一行:

    Console.WriteLine("Today's date is " + DateTime.Now.ToString("MMMM dd. yyyy., dddd"));"
    

    将输出: Today's date is June 12. 2018., Tuesday.


    我想在“你必须集中注意力”这句话后的一周中写下不同的一天 . 周一我想写周三,周二我想写周四和周五等 .

    为了获得集中日,我们应该创建另一种方法,因为不同的日子有不同的规则 . 这是一个示例方法,它返回您上面描述的内容,并且在其他所有日子里它只返回第二天的DayOfWeek字符串:

    public static string GetConcentrationDays(DateTime fromDate)
    {
        switch (fromDate.DayOfWeek)
        {
            case DayOfWeek.Monday:
                return "Wednesday";
            case DayOfWeek.Tuesday:
                return "Thursday AND Friday";
            default:
                // For any other day, return the next day's day of week
                return fromDate.AddDays(1).DayOfWeek.ToString();
        }
    }
    

    现在我们可以通过做类似的事情把所有这些放在一起:

    private static void Main()
    {            
        // Get the current date and time
        var now = DateTime.Now;
    
        // Build our greeting string
        var greeting = new StringBuilder();
        greeting.Append("Good " + GetGeneralTime(now) + "! ");
        greeting.AppendLine("Today's date: " + now.ToString("MMMM dd, yyyy, dddd. "));
        greeting.AppendLine("Now you have to concentrate on " + GetConcentrationDays(now));
    
        // Display our greeting to the user
        Console.WriteLine(greeting.ToString());
    
        GetKeyFromUser("\nDone! Press any key to exit...");
    }
    

    Output

    ![![enter image description here

相关问题