日期类Date控制台应用程序设计

小咸鱼终于又准备敲代码辽呜呜,什么王者荣耀,耽误我学习hhh

实验要求

实验要求:写出类 Date 的定义代码,含有如图所示的 3 个字段及 4 个方法。

实验目的

实验目的: 学会自定义类及类成员并实例化对象解决实际问题。

实验内容

(1) 在VS开发环境的控制台应用中,从菜单“项目”→“添加类”,添加自定义的类Date。

定义类的字段year,month,day用于记录年月日信息。

(2)定义类的构造方法Date,用于初始化日期对象为公元元年元旦。

internal Date(){        year=1; month=1; day=1;         }

(3)定义五个方法分别完成显示日期、判断闰年、

获取年中天数、获取是星期几。

internal string DisplayDate()

bool IsLeapYear(int year) //判断该年是否为闰年

internal bool IsValidDateValue()

int GetDayOfYear()

public string GetDayOfWeek()

(4)对类Date的构造方法及DisplayDate方法进行重载,

接受与显示用户输入的日期。

internal Date(int year,int month,int day)

internal string DisplayDate(int year, int month, int day)

(5)实例化Date类,访问类的方法显示日期及日期是星期几。

代码实现

Date.cs代码

class Date
{int year, month, day;public Date(){year = 1; month = 1; day = 1;}public Date(int year, int month, int day){this.year = year; this.month = month; this.day = day;}internal string DisplayDate(){return year + "-" + month + "-" + day;}internal string DisplayDate(int year, int month, int day){return "公元" + year + "年" + month + "月" + day + "日";}//staticinternal bool IsLeapYear(int year)//判断该年是否为闰年{bool isLeap = false;if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)isLeap = true;return isLeap;}//staticinternal int GetDayOfYear(){int dayOfYear = 0;int[] monthDaysEachYear = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int[] monthDaysLeapYear = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };if (IsLeapYear(year)){for (int i = 0; i < month; i++)dayOfYear += monthDaysLeapYear[i];}else{for (int i = 0; i < month; i++)dayOfYear += monthDaysEachYear[i];}dayOfYear += day;return dayOfYear;}internal bool IsValidDateValue(){if (month < 1 || month > 12){return false;}if (day < 1 || day > 31){return false;}if ((month == 4 || month == 6 || month == 9 || month == 11) && (day == 31)){return false;}if (month == 2){bool leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));if (day > 29 || (day == 29 && !leap)){return false;}}return true;}internal string GetDayOfWeek(){int daysCount = 0;for (int i = 1; i < year; i++){if (IsLeapYear(i))daysCount += 366;elsedaysCount += 365;}daysCount += GetDayOfYear();string weekDay = "星期" + "日一二三四五六"[(daysCount % 7)];return weekDay;}
}

Program.cs代码

using System;
class TestDate
{static void Main(string[] args){Console.WriteLine("欢迎使用Data类,C#程序设计by SDNU咸鱼小十七酱ovo");Date dateNoArgs = new Date();//声明及实例化对象Console.WriteLine("设定的初始日期是:" + dateNoArgs.DisplayDate());Console.WriteLine("公元元年元旦是:" + dateNoArgs.GetDayOfWeek());int yearValue, monthValue, dayValue;Console.WriteLine("请依次输入年、月、日:");Console.WriteLine("请输入年:");yearValue = Convert.ToInt32(Console.ReadLine());Console.WriteLine("请输入月:");monthValue = Convert.ToInt32(Console.ReadLine());Console.WriteLine("请输入日:");dayValue = Convert.ToInt32(Console.ReadLine());Date userInputDate = new Date(yearValue, monthValue, dayValue);//声明及实例化对象if (userInputDate.IsValidDateValue()){Console.WriteLine("输入的日期是:" + userInputDate.DisplayDate());Console.WriteLine("输入的日期是:" + userInputDate.DisplayDate(yearValue, monthValue, dayValue));Console.WriteLine(userInputDate.DisplayDate() + "是" + userInputDate.GetDayOfWeek());}elseConsole.WriteLine("您输入的日期不正确,无法完成计算!");Console.ReadLine();}
}

运行结果

收获与体会

学会了自定义类。Date.cs用了86行,Program.cs用了30行。借鉴了老师对于实验日期类Date控制台应用程序设计的视频讲解中的代码。对于C#的基本知识了解的还是太少,还需要多看课本,熟悉课本,才能更好的写代码,要继续加油喔!

有问题欢迎指正说明,并联系QQ2062642718

日期类Date控制台应用程序设计C#相关推荐

  1. (C++)设计一个日期类Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,包括某日期加上指定天数、某日期减去指定天数、两个日期相差的天数等。

    C++面向对象程序设计课后作业第239页第5题 题目要求:设计一个日期类Date,包括年.月.日等私有数据成员.要求实现日期的基本运算,包括某日期加上指定天数.某日期减去指定天数.两个日期相差的天数等 ...

  2. java定义一个日期类 包括年 月 日_【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期..._考试资料网...

    填空题[说明] 设计一个日期类Date包括年.月.日等私有数据成员.要求实现日期的基本运算,如某日期加上天数.某日期减去天数.两日期相差的天数等. 在Date类中设计如下重载运算符函数: Date o ...

  3. python设计一个date类数据成员有年月日_设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数...

    /*设计一个日期类Date,包括年.月.日等私有成员.要求实现日期的基本运算,例如某日期加上天数或减去天数 ,两日期相减的天数等. 实现要求: 实现运算符加与减的重载 设计一个日期类Date,包括年. ...

  4. 设计一个日期类Date

    //用C++++设计一个日期类Date,该类用于表示日期值(年.月.日). //要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作. #include<iostrea ...

  5. 新手小白学JAVA 日期类Date SimpleDateFormat Calendar

    1. Date日期类 类 Date 表示一个特定的瞬间,精确到毫秒 1.1 Date的构造函数 Date() 分配一个 Date 对象,以表示分配它的时间(精确到毫秒) Date(long date) ...

  6. java怎么创建日期类_java中的日期类Date

    一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中 ...

  7. Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类

    抽象 1抽象类不能生成对象 2类中包含抽象函数,这个类必须声明为抽象类 3抽象类不一定有抽象方法.有抽象方法必须是抽象类 4若全是抽象方法,则为接口 接口 比如 interface action{vo ...

  8. JS中内置的日期类Date,显示系统时间、停止系统时间

    目录 一.关于Date类: 二.显示系统时间: 一.关于Date类: 可以用来获取时间/日期. 创建Date对象:Date date = new Date("2001/11/01" ...

  9. java 日期类Date插入mysql数据库时间总是比参数时间少一天

    问题发生: 插入日期比预想的少了一天,查看java 中执行的sql INSERT INTO t3b_msg (send_dt) values(str_to_date('2019 - 10 - 18', ...

最新文章

  1. 基于catalog 创建RMAN存储脚本
  2. musical.ly体验-这款国产外销的APP凭什么登上美国榜首?
  3. VS2015:安装适用于windows桌面的visual c++2015
  4. 使用react实现select_使用 Hooks 优化 React 组件
  5. android视频通信和web端,探讨用webrtc在手机和浏览器之间实现音视频实时通信的实施环境...
  6. 一人网站所有的 ip地址_咸宁网站建设-网站的主要特征
  7. 2013浙大878计算机基础综合大题答案解析
  8. fastapi 基础使用
  9. weblogic安装部署linux下
  10. 数据分析--卡方分析与方差分析
  11. html怎么链接scc,htmlscc基础知识
  12. Spark Streaming官网重点整理
  13. 计算机的应届毕业生简历上可以写什么,计算机应届生简历范文计算机专业应届毕业生简历写.doc...
  14. 软件测试实验1——语句覆盖、判定覆盖、条件覆盖、路径覆盖的用例设计及Junit测试
  15. 新浪十年路 新浪的触角 新浪成年
  16. 京东数据化运营(三)- 复购率
  17. 游戏服务器 数据同步方案
  18. 考证大全 | 证券从业资格考试
  19. 520浪漫代码流星雨
  20. 【Himi转载推荐之一】优化cocos2d/x程序的内存使用和程序大小【一】

热门文章

  1. 【ERROR】Could not build wheels for tokenizers, which is required to install pyproject.toml-based proj
  2. kubernetes(k8s)容器集群管理系统
  3. 5g上行速率怎么提升_5G网络室内覆盖系统的解决方案解析
  4. 国家统计局,(省/市/县/区/街道)五级联动数据
  5. 一次性讲清楚 Handler 可能导致的内存泄漏和解决办法 | 开发者说·DTalk
  6. Java毕业设计_基于Android的签到点名系统
  7. warning: LF will be replaced by CRLF in ** 的原因及解决办法(好文章!!)
  8. 【React源码】(十六)React 合成事件
  9. 解决多个DropDownList 用SelectedValue 赋值全部默认最后一项的默认值
  10. 烽火HG2543C1获得超级密码删除tr069