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

时间:2018-06-12 13:49:22

标签: c# wpf date

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

"好(1)上午/下午/晚上!今天的日期:(2)一周中的日期/日期。现在你必须专注于(3)周三和周四。"

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

有解决方法吗?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

  
      
  1. 我想早上6点到凌晨6点之间的时间写下午,下午6点到凌晨6点到下午6点半到凌晨5点59分。
  2.   

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

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

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";
}
  
      
  1. 我想写出今天的日期和星期几。例如:&#34;今天的日期是6月12日2018.星期二。
  2.   

对于此部分,您可以从DateTime string format自动获取(包括&#34;星期几和#34;格式,例如&#34;星期一和#34;({{1} }),或简短形式&#34;周一&#34;("dddd")和&#34;月份名称&#34;格式如&#34;六月&#34;("ddd")或简短形式&#34; Jun&#34;("MMMM"))。点击上面的链接获取更多信息。

例如这一行:

"MMM"

将输出:今天的日期是6月12日2018.星期二。

  
      
  1. 我想在句子后的一周中写下不同的一天&#34;你必须专注于&#34;。周一我想写周三,周二我想写周四和周五等。
  2.   

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

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

现在我们可以通过以下方式将所有这些放在一起:

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();
    }
}

<强>输出

![![enter image description here

答案 1 :(得分:1)

样品:

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;
        }
    }
}