标题:请教 c# 时间处理问题
只看楼主
黑客18岁
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-4-2
结帖率:100%
已结贴  问题点数:10 回复次数:2 
请教 c# 时间处理问题
各位高手,请问如何让c#自动转换时间。
例如dt=DateTime(2006, 5, 32);
  因为5月没有32日,但我想让它自动转成 6月1日,如何做??
 谢谢!
搜索更多相关主题的帖子: 如何 
2016-04-02 10:53
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:10 
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            int y = 2006, m = 12, d = 32;
            Console.WriteLine("{0}-{1}-{2}", y, m, d);

            fun(ref y, ref m, ref d);

            Console.WriteLine("{0}-{1}-{2}", y, m, d);

            Console.ReadKey();
        }

        //使用一个方法来变换年月日
        private static void fun(ref int year,ref int month,ref int day)
        {
            int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };  //每月的天数

            if(year%400==0||(year%4==0&&year%100!=0))  //闰年2月29天
            {
                days[1] = 29;
            }

            if (day <= days[month - 1]) return;  //天数不超过当月的天数,直接返回
            
            if(month==12)  //如果是12月,则要转到明年的1月
            {
                year += 1;
                month = 1;
                day -= 31;
            }
            else  //一般的情况
            {
                day -= days[month - 1];
                month += 1;
            }
        }
    }
}

   唯实惟新 至诚致志
2016-04-02 12:51
黑客18岁
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-4-2
得分:0 
谢谢! 因为存在其他可能,例如:DateTime(2015,16,36),所以考虑的问题还是挺多的。后来引用的一个函数可以统一解决。
2016-04-02 15:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463179-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.188653 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved