using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Calculate_Date_Location
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("输入一个日期,输出这是这一年的第几天。");
var input = Console.ReadLine();
var year = input.Substring(0, 4);
var month = input.Substring(4, 2);
var date = input.Substring(6, 2);
var mDays = 0;
var dDays = date.Substring(0, 1) == "0" ? int.Parse(date.Substring(1, 1)) : int.Parse(date);
//2月份天数在闰年和平年中不一样
if (month.Substring(0, 1) == "0")
{
if (month.Substring(1, 1) == "2")
{
mDays = IsLeapYear(year) ? 29 : 28;
mDays = mDays * 2;
}
else
{
var iMonth = int.Parse(month.Substring(1, 1));
mDays = (IsBMonth(iMonth) ? 31 : 30) * (iMonth - 1);
}
}
else
{
var iMonth = int.Parse(month);
mDays = (IsBMonth(iMonth) ? 31 : 30) * (iMonth - 1);
}
Console.WriteLine(mDays + dDays);
}
//闰年判断
public static bool IsLeapYear(string year)
{
var iYear = int.Parse(year);
//四年一闰,百年不闰,四百年再闰
return (iYear % 100 == 0) ? (iYear % 4 == 0 && iYear % 400 == 0) : (iYear % 4 == 0);
}
//大小月判断
public static bool IsBMonth(int month)
{
var bMonth = new int[] { 1, 3, 5, 7, 8, 10, 12 };
return bMonth.Contains(month);
}
}
}
判断日期在所在年中的位置
最新推荐文章于 2024-01-11 22:23:53 发布