我现在要写一个函数,就是根据当前日期和时间算出上个月的26号晚8点的日期
比如今天是 2009-4-21 16:16:16
那么便得出 2009-3-26 22:00:00而如果当前是 2009-4-27 16:16:16
那么便得出   2009-4-26 22:00:00如果当前是 2009-4-26 19:16:16
那么便得出 2009-3-26 22:00:00这样的函数 具体 如何写?

解决方案 »

  1.   

    DateTime.Now.AddMonths(-1).ToString();
      

  2.   

                DateTime dt = DateTime.Now.AddMonths(-1).AddHours(-1 * DateTime.Now.Hour)
                    .AddHours(22).AddMinutes(-1 * DateTime.Now.Minute).AddSeconds(-1 * DateTime.Now.Second);
      

  3.   

    Datetime time = DateTime.Parse("20:00:00");string newtime = time.AddMonths(-1).ToString();
      

  4.   

    DateTime.Today.AddMonth(-1).ToString("yyyy-MM-26 22:00:00");
      

  5.   

    MessageBox.Show(DateTime.Now.Day > 26 ? DateTime.Now.ToString("yyyy-MM-26 20:00:00") : DateTime.Now.AddMonths(-1).ToString("yyyy-MM-26 20:00:00"));
      

  6.   

     string _ValueTime = _Time.Day > 26 ? _Time.ToString("yyyy-MM-26 20:00:00") : _Time.AddMonths(-1).ToString("yyyy-MM-26 20:00:00");
              
      

  7.   

    怎么像在算离职工资一样
    using System;
    using System.Collections.Generic;
    using System.Text;namespace ConsoleApplication14
    {
        class Program
        {
            static void Main(string[] args)
            {
                DateTime DT = DateTime.Parse("2009-4-21 16:16:16");
                Print(DT);
                DT = DateTime.Parse("2009-4-27 22:16:16");
                Print(DT);
                DT = DateTime.Parse("2009-4-26 22:16:16");
                Print(DT);
                Console.Read();
            }        static void Print(DateTime DT)
            {
                if (DT.Day < 26)
                    Console.WriteLine(DT.AddMonths(-1).ToString("yyyy-MM-26 20:00:00"));
                else
                    Console.WriteLine(DT.ToString("yyyy-MM-26 20:00:00"));
            }
        }
    }
      

  8.   

    可以简化
          Console.WriteLine(DT.AddMonths(DT.Day / 26 - 1).ToString("yyyy-MM-26 20:00:00"));
          
      

  9.   

    别回了,我知道怎么弄了,结贴了//显示从上个月26日晚8点 到现在的
                string s;
                if (DateTime.Now.Day >= 26 && DateTime.Now.Hour >= 20)
                    s = DateTime.Now.ToString("yyyy-MM-26 20:00:00");
                else
                    s = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-26 20:00:00");