inputs a date (e.g. July 4, 2008) and outputs the day of the week-根据输入日期判断星期几

inputs a date (e.g. July 4, 2008) and outputs the day of the week-根据输入日期判断星期几:

//inputs a date (e.g. July 4, 2008) and outputs the day of the week
#include<iostream>
#include<string>
using namespace std;

bool leapyear;

void getInput(string& a,int& month,int& day,int& year);
bool isLeapYear(int year);
int getCenturyValue(int year);
int getYearValue(int year);
int getMonthValue(string a,int month,int year);

int main()
{
    int month,day,year,week;
    int centuryvalue,yearvalue,monthvalue;
    string a,b;
    
    getInput(a,month,day,year);
    leapyear = isLeapYear(year);
    cout<<"isLeapYear "<<leapyear<<endl;
    centuryvalue = getCenturyValue(year);
    cout<<"centuryvalue "<<centuryvalue<<endl;
    yearvalue = getYearValue(year);
    cout<<"yearvalue "<<yearvalue<<endl;
    monthvalue = getMonthValue(a,month,year);
    cout<<"monthvalue "<<monthvalue<<endl;
    
    week = (day + monthvalue + yearvalue + centuryvalue) % 7;
    cout<<"week "<<week<<endl;
    switch(week)
    {
        case 1:
            b = "Monday";
            break;
        case 2:
            b = "Tuesday";
            break;
        case 3:
            b = "Wednesday";
            break;
        case 4:
            b = "Thursday";
            break;
        case 5:
            b = "Firday";
            break;
        case 6:
            b = "Saturday";
            break;
        case 0:
            b = "Sunday";
            break;
        default:
            cout<<"ERROR!";
    }
    cout<<"The day of week is "<<b<<endl;
    
    return 0;
}

void getInput(string& a,int& month,int& day,int& year)
{
    int number;
    cout<<"Enter the date:"<<endl;
    cout<<"1:month is english,"<<endl;
    cout<<"2:month is numbers."<<endl;
    cin>>number;
    switch(number)
    {
        case 1:
            cout<<"Enter the date(july 4 2008):\n";
            cin>>a>>day>>year;
            break;
        case 2:
            cout<<"Enter the date(7 4 2008):\n";
            cin>>month>>day>>year;
            break;
        default:
            cout<<"Error!";
    }
}

bool isLeapYear(int year)
{
    if(0 == year % 400 || (year % 4 ==0 && 0 != year % 100))
        return 1;
    return 0;
}

int getCenturyValue(int year)
{
    int tem;
    tem =(3 - (year / 100) % 4)*2;
    return tem;
}

int getYearValue(int year)
{
    int tem;
    tem = (year % 100) / 4 + year % 100;
    return tem;
}

int getMonthValue(string a,int month,int year)
{
    if(a == "october" || month == 10 || (a == "january" && (!leapyear)) || (month == 1 && (!leapyear)))
        return 0;
    else if(a == "may" || month == 5)
        return 1;
    else if(a == "august" || month == 8 || (a == "february" && (leapyear)) || (month == 2 && (leapyear)))
        return 2;
    else if(a == "march" || month == 3 || a == "november" || month == 11 || (a == "february" && (!leapyear)) || (month == 2 && (!leapyear)))
        return 3;
    else if(a == "june" || month == 6 )
        return 4;
    else if(a == "september" || month == 9 || a == "december" || month == 12)
        return 5;
    else if(a == "april" || month == 4 || a == "july" || month == 7 || (a == "january" && (leapyear)))
        return 6;
    return -1;
}

结果:

Enter the date:
1:month is english,
2:month is numbers.
2
Enter the date(7 4 2008):
9 1 2014
isLeapYear 0
centuryvalue 6
yearvalue 17
monthvalue 5
week 1
The day of week is Monday

Enter the date:
1:month is english,
2:month is numbers.
2
Enter the date(7 4 2008):
7 4 2008
isLeapYear 1
centuryvalue 6
yearvalue 10
monthvalue 6
week 5
The day of week is Firday

Enter the date:
1:month is english,
2:month is numbers.
1
Enter the date(july 4 2008):
july 4 2008
isLeapYear 1
centuryvalue 6
yearvalue 10
monthvalue 6
week 5
The day of week is Firday
时间: 2024-10-31 20:53:27

inputs a date (e.g. July 4, 2008) and outputs the day of the week-根据输入日期判断星期几的相关文章

Logstash之Logstash inputs(file和redis插件)、Logstash outputs和Filter plugins

Filebeat啊,根据input来监控数据,根据output来使用数据!!! Filebeat之input和output(包含Elasticsearch Output .Logstash Output. Redis Output. File Output和 Console Output) Logstash啊,根据input来监控数据,根据output来使用数据!!! 手把手带你看官方文档(Logstash inputs和Logstash outputs) https://www.elastic

js里Date时间格式的常用转换-------(GMT转成yyyy-MM-dd)--------(根据日期获得星期几)

const DateParse = { /** * 将GMT格式的时间转为数据库兼容的Date格式 * gmt => GMT格式的时间 * long => 是否长时间(包含时分秒), 可不填(默认值:true), 选填:false * Wed Dec 01 2018 00:00:00 GMT+0800 (中国标准时间) => 2018-12-01 00:00:00 或 2018-12-01 */ formatGMT: ( gmt, long ) => { long = false

ABAP - 日期格式转换 &amp; ABAP常用日期处理函数

ABAP - 日期格式转换 现在提供以下一些日期格式转换的函数: Below are several FMs which can be used to convert date format. 1. CONVERSION_EXIT_IDATE_OUTPUT INPUT:      20080203 OUTPUT:   03FEB2008 2. CONVERT_DATE_TO_EXTERNAL INPUT:      20080203 OUTPUT:   02/03/2008    "Accord

ABAP - 日期格式转换 &amp;amp; ABAP经常使用日期处理函数

ABAP - 日期格式转换 如今提供下面一些日期格式转换的函数: Below are several FMs which can be used to convert date format. 1. CONVERSION_EXIT_IDATE_OUTPUT INPUT:      20080203 OUTPUT:   03FEB2008 2. CONVERT_DATE_TO_EXTERNAL INPUT:      20080203 OUTPUT:   02/03/2008    "Accord

SAP中日期时间函数总结

1.获得最后一天CALL FUNCTION 'FIMA_DATE_CREATE'  EXPORTING   I_DATE                       = I_DATE "输入日期.sy-datum类型 如:‘20110402’.   I_FLG_END_OF_MONTH            = ' '   I_YEARS                       = 2 "两年后的日期时间,既sy-datum的年加2所得日期,可为负数,表示前两年   I_MONTH

SAP中常用函数(转载)

sap函数大全 函数名 描述SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VIEW_MAINTENANCE_CALL 维护表视图 函数名 描述DY_GET_FOCUS 获得屏幕焦点DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值 函数名 描述F4IF_INT_TABLE_VALUE_REQUEST 显示检索helpREAD_TEXT 读取长

Gym101522A Gym101522C Gym101522D

Gym101522A A There are two popular formats for representing a date: day/month/year or month/day/year. For example, today can be represented as 15/8/2017 or 8/15/2017. Sometimes (like on today), using one way or another should pose no confusion - it i

黑马程序员——经典C语言程序设计100例

1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸 11.经典兔子问题 12.判断素数 13.水仙花数问题 14.正整数分解质因数 15.学习成绩划分 16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数 18.求s=a+aa+aaa+aa...a的值 19.求解"完数" 20.球体自由落下物理问题

C语言之运算符和条件结构

表达式:是有操作数和运算符组成的. 操作数:常量.变量.子表达式 X=(x+2)*(y-2); 运算符: 赋值运算符:= .其作用是做赋值运算,将等号后边的值赋值给等号前边的. 复合赋值运算符: +=,-=,*=,/=,%= Eg: x+=5 :x=x+5; //复合运算符 int x=10; printf("%d\n",x+=5);//x=x+5;==>x=15 printf("%d\n",x-=5);//x=x-5;==>x=10 printf(&q