codeforces724-A. Checking the Calendar 日期题

首先有这样一个显然的事实,那就是每个月的第一天可以是星期x,x可以取遍1~7

因为日期一直在往后退,总有一年能轮到分割线那天,因为本来其实压根就没有月份的划分,月份划分是人为的

而且我们也不知道开始的时候是从啥时候开始,开始时是星期几,所以也可以大胆假设,

并且要注意题目中没有闰年的这个条件,很重要。。

打代码还遇到一些坑,写到注释里了

string的读入与printf调试的矛盾一直没解决

#include <cstring>
#include <cstdio>
#include <iostream>
//要想使用string 必须包含iostream文件
//否则就会报错
using namespace std;
int monthday[]={0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string name[]={"1","monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"};
//少加了分号,很伤
int get_Index(string p){
    register int i;
    for(i=1;i<=7;++i){
        if(p==name[i]){
            return i;
        }
    }
}
char a[20],b[20];
//读取string 是一个问题
int main(){
    scanf("%s%s",a,b);
    string p[2];
    int index[2];
    p[0]=string(a);//本构造函数长期有效
    p[1]=string(b);//变量赋值前面不加类型,很伤
    index[0]=get_Index(p[0]);
    index[1]=get_Index(p[1]);
    //printf("index %d %d\n",index[0],index[1]);
    register int i,j;
    for(j=2;j<=4;++j){
        int temp=index[0];
        for(i=1;i<=monthday[j];++i){//++i 写成 ++j
            temp++;
            if(temp>7) temp-=7;
        }
        if(temp==index[1]){
            printf("YES\n");
            return 0;
        }
    }
    printf("NO\n");
    return 0;
}
时间: 2024-10-13 00:56:42

codeforces724-A. Checking the Calendar 日期题的相关文章

[转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择

本文转自:http://blog.bossma.cn/asp_net_mvc/asp-net-mvc-htmlhelper-calendar-datetime-select/ 这里我们扩展HtmlHelper,就像它包含在ASP.NET MVC中一样,扩展方法使我们能为已有的类添加方法.这里使用了一个日期时间选择控件:My97DatePicker,需要添加到网站中,并在页面中引用. 先看看是怎么扩展的: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Calendar日期的计算

一,得到三月内的周六,周日 Calendar calendar=Calendar.getInstance();//当前日期 Calendar calendar2=Calendar.getInstance(); int curYear = calendar2.get(Calendar.YEAR); // 得到系统年份 int curMonth = calendar2.get(Calendar.MONTH); // 得到系统月份 int curDay=calendar2.get(Calendar.D

JAVA Calendar 日期加减

Date starttime=new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(starttime); cal.set(Calendar.DATE, cal.get(Calendar.DATE) - 2); starttime= cal.getTime(); JAVA Calendar 日期加减

碰到日期题就怕的我来写一道水题吧

HDOJ-2005, http://acm.hdu.edu.cn/showproblem.php?pid=2005 20XX系列的水题哈哈,写了二十分钟,就为找到一种比较正常不傻逼的写法... 嗯,学习了一下,闰年的判断可以写成一个接受参数的宏. #define lev(n) (n%4==0&&(n%100!=0||n%400==0)) 然后建立一个二维数组来存储闰年和非闰年的每月天数. int calendar[2][13] = { {0,31,28,31,30,31,30,31,31,

java中Calendar日期对象

转帖网上简介 Calendar c = Calendar.getInstance();//创建实例 默认是当前时刻 c.get(Calendar.YEAR); c.get(Calendar.MONTH); c.get(Calendar.DATE);//获取年,月,日 当然时分秒也可以 注意这里的月份比较特殊 从0开始 c.get(Calendar.DAY_OF_WEEK);//获取当前日期在星期中的第几天 从1-7对应 日-六 c.getActualMaximum(Calendar.DAY_OF

objective-c calendar 日期

NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能.Date对象是不可改变的. 如果你要创建date对象并表示当前日期,你可以alloc一个NSDate对象并调用init初始化: C代码   NSDate *now = [[NSDate alloc] init]; 或者使用NSDate的date类方法来创建一个日期对象.如果你需要与当前日期不同的日期,你可以使用NSDate的in

Calendar 日期判断 等于 。小于。大于

public static void main(String[] args) throws Exception { String startTime = "2012-12-12 12:45:45"; String endTime = "2012-04-12 12:45:40"; String SYSendTime = "2012-11-12 12:45:40"; SimpleDateFormat sdf = new SimpleDateForma

java Calendar日期抽象类

抽象类不能直接new,需要它的实例对象GregorianCalendar(): 获取Calendar抽象类属性需要c.get()方法:int year=c.get(Calendar.YEAR); 手动设置日期:Calendar c=new GregorianCalendar(''2000,11,11,20,20,20); int year=c.get(Calendar.YEAR); //返回年int week=c.get(calendar.DAY_OF_WEEK) //返回星期几 没有参数的设置

日期类 Date

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /* 日期类 Date Calendar 日期格式化类 SimpleDateFormat */ public class Demo3 { public static void main(String[] args) throws ParseException {